[英]Regex to find second word in a list of paired words
我正在尝试为EViews编写一个Sublime Text 3语法,并且需要找到一个正则表达式来选择对列表中的第二个项目当且仅当该对的第一个元素出现在该行的开头时(忽略任何前导)空格)。
对于一对,我可以做到这一点, if then
说
^\s*if.+(then)
但是对于每一对分别进行它似乎非常笨拙。
当然有一种更聪明的方法吗?
完整的对列表是if then
, for to
, to step
, else if
和subroutine local
。
你可以试试这个:
^\s*if\s+\b(then)\b.*|^\s*for\s+\b(to)\b.*|^\s*to\s+\b(step)\b.*|^\s*else\s+\b(if)\b.*|^\s*subroutine\s+\b(local)\b.*
确保未选中与新行匹配的点
使用这个正则表达式 :
\s*\bif\b.*?\b(then)\b|\s*\bfor\b.*?\b(to)\b|\s*\bto\b.*?\b(step)\b|\s*\belse\b.*?\b(if)\b|\s*\bsubroutine\b.*?\b(local)\b
第1点的匹配then
,组2个匹配to
,第3点的匹配step
,第4点的匹配if
,组5点的匹配local
,只有如果这些是由正确的字之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.