我想用regex在ooRexx文件中捕获逻辑运算符,因为我希望使用.cson编辑器支持ooRexx的语法突出显示。这些都是我试图涵盖的运营商:
>= <= \> \< \= >< <> == \== // && || ** ¬> ¬< ¬= ¬== >> << >>= \<< ¬<< \>> ¬>> <<=
这是cson文件中的regex部分:
'match': '\\+ | - | [\\\\] | \\/ | % | \\* | \\| | & |=|¬|>|<|
>= | <= | ([\\\\]>) | ([\\\\]<) | ([\\\\]=) | >< | <> | == | ([\\\\]==) |
\\/\\/ | && | \\|\\| | \\*\\* | ¬> | ¬< | ¬= | ¬== | >> | << | >>= | ([\\\\]<<) | ¬<< |
([\\\\]>>) | ¬>> | <<='我正在与斜杠(正反向)和双**作斗争,我对正则表达式的了解是非常基本的,可以很好地说。有人能帮我吗?
发布于 2017-03-08 22:02:56
在管道条周围有空格:这些空格在正则表达式中计算。因此,当您编写类似于| \*\* |的东西时,双星号会被捕获,但是如果它们被两边的一个空格包围,而不是附加到一个单词或行的开头/结尾,则只会被捕获。斜杠也有同样的问题--我已经测试过了,它似乎能帮我捕捉到它们,但前提是你的斜杠(或星号)在两个空格之间。
还有几件事要记住:
[<>]=将同时捕获>=和<=。编写[\\]等同于直接编写\\,因为\\是单个字符,这是因为第一个转义反斜杠。类似地,这里没有使用括号;请参见分组。+和*。因此,\\>+将同时捕获\>和\>>。==?将与=和==相匹配。你可以用这三种技巧结合…把你的很多陈述组合在一起我把这个练习留给你!
开发长正则表达式时的另一个提示--使用像Regex101这样的测试器或与测试文件类似的测试器来实时查看您的更改,而像瑞格这样的调试器将帮助您了解如何解析正则表达式。
https://stackoverflow.com/questions/42682045
复制相似问题