如何与CSON一起使用Regex



我想从一个.cson文件中从oorexx中捕获逻辑运算符,因为我想使用Atom Editor支持Oorexx的支持语法。这些是我试图涵盖的操作员:

>= <= > < = >< <> == == // && || ** ¬> ¬< ¬= ¬== >> << >>= << ¬<< >> ¬>> <<=

这是CSON文件中的正则零件:

'match': '\+ | - | [\\] | \/ | % | \* | \| | & |=|¬|>|<|
>= | <= | ([\\]>) | ([\\]<) | ([\\]=) | >< | <> | == | ([\\]==) | 
\/\/ | && | \|\| | \*\* | ¬> | ¬< | ¬= | ¬== | >> | << | >>= | ([\\]<<) | ¬<< |
([\\]>>) | ¬>> | <<='

我在斜线(向前和向后)上挣扎,而且双**我对Regex的了解非常基本,这是非常基本的。有人可以帮助我吗?

您在管道杆周围有空格:这些空间在正则表达式中计数。因此,当您编写诸如| ** |之类的东西时,双星号被捕获,但是如果它们被两侧的空间包围,而不是将它们固定在一个单词或开始/结束时一条线。斜线同样的问题 - 我已经对其进行了测试,并且似乎确实为我抓住了它们,但是只要您的斜杠(或星号)在两个空间之间。

其他一些要记住的事情:

  • 您不需要后斜线周围的方括号;它们可用于提供可能匹配的可能字符的。例如,[<>]=将同时捕获>=<=。编写[\]等于直接编写\,因为\由于第一次逃脱后斜击而被视为单个字符。同样,您的括号也没有使用;请参阅分组。
  • 还考虑使用+*等重复操作员。因此,\>+将同时捕获>>>
  • 最后,问号将通过将上一个字符(或在方括号中的字符组(或一组字符)标记为可选的,可以帮助您避免重复。==?将匹配===

您可以将很多陈述与这三个技巧组合在一起……我将把练习留给您!

在开发较长的正则表达式时只是另一个提示 - 使用Regex101之类的测试仪或测试文件类似的测试仪来查看您的实时更改,而Regexper这样的调试者将帮助您了解如何解析正则表达式。

相关内容

  • 没有找到相关文章

最新更新