我想在.cson文件中使用regex从ooRexx捕获逻辑运算符,因为我希望使用Atom编辑器支持语法高亮显示ooRexx。这些是我试图涵盖的运营商:
>= <= \> \< \= >< <> == \== // && || ** ¬> ¬< ¬= ¬== >> << >>= \<< ¬<< \>> ¬>> <<=
这是cson文件中的正则表达式部分:
'match': '\\+ | - | [\\\\] | \\/ | % | \\* | \\| | & |=|¬|>|<|
>= | <= | ([\\\\]>) | ([\\\\]<) | ([\\\\]=) | >< | <> | == | ([\\\\]==) |
\\/\\/ | && | \\|\\| | \\*\\* | ¬> | ¬< | ¬= | ¬== | >> | << | >>= | ([\\\\]<<) | ¬<< |
([\\\\]>>) | ¬>> | <<='
我挣扎着斜线(向前和向后)以及双**
我对正则表达式的了解非常基本,说得很好。是否有人可以帮助我?
答案 0 :(得分:0)
管道周围有空格:这些空格在正则表达式中计算。所以当你写| \*\* |
之类的东西时,双星号会被捕获,但如果它们被每边的空格包围,那么只会,而不是如果它们被粘贴到一个单词或者一行的开头/结尾。斜线也有同样的问题 - 我已经测试了它,它确实似乎为我捕获它们,但只要你的斜线(或星号)在两个空格之间。
要记住的其他一些事项:
[<>]=
将同时捕获>=
和<=
。写[\\]
等同于直接编写\\
,因为\\
计为单个字符,因为第一个转义为反斜杠。同样,这里的括号没有被使用;见grouping。+
和*
之类的repetition operators。因此\\>+
会同时抓住\>
和\>>
。 ==?
将与=
和==
匹配。你可以把你的很多陈述与这三个技巧结合在一起......我会把这个练习留给你!
开发长正则表达式时的另一个提示 - 使用Regex101之类的测试人员或类似测试文件来实时查看您的更改,Regexper等调试器将帮助您了解常规表达式解析表达式。