首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cson中使用regex

如何在cson中使用regex
EN

Stack Overflow用户
提问于 2017-03-08 21:15:01
回答 1查看 500关注 0票数 0

我想用regex在ooRexx文件中捕获逻辑运算符,因为我希望使用.cson编辑器支持ooRexx的语法突出显示。这些都是我试图涵盖的运营商:

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

这是cson文件中的regex部分:

代码语言:javascript
复制
'match': '\\+ | - | [\\\\] | \\/ | % | \\* | \\| | & |=|¬|>|<|
>= | <= | ([\\\\]>) | ([\\\\]<) | ([\\\\]=) | >< | <> | == | ([\\\\]==) | 
\\/\\/ | && | \\|\\| | \\*\\* | ¬> | ¬< | ¬= | ¬== | >> | << | >>= | ([\\\\]<<) | ¬<< |
([\\\\]>>) | ¬>> | <<='

我正在与斜杠(正反向)和双**作斗争,我对正则表达式的了解是非常基本的,可以很好地说。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 22:02:56

在管道条周围有空格:这些空格在正则表达式中计算。因此,当您编写类似于| \*\* |的东西时,双星号会被捕获,但是如果它们被两边的一个空格包围,而不是附加到一个单词或行的开头/结尾,则只会被捕获。斜杠也有同样的问题--我已经测试过了,它似乎能帮我捕捉到它们,但前提是你的斜杠(或星号)在两个空格之间。

还有几件事要记住:

  • 您不应该需要反斜杠周围的方括号;它们对于提供可能匹配的字符的很有用。例如,[<>]=将同时捕获>=<=。编写[\\]等同于直接编写\\,因为\\是单个字符,这是因为第一个转义反斜杠。类似地,这里没有使用括号;请参见分组
  • 还可以考虑使用重复运算符,如+*。因此,\\>+将同时捕获\>\>>
  • 最后,问号将前一个字符(或方括号中的一组字符)标记为可选字符,从而帮助您避免重复。==?将与===相匹配。

你可以用这三种技巧结合…把你的很多陈述组合在一起我把这个练习留给你!

开发长正则表达式时的另一个提示--使用像Regex101这样的测试器或与测试文件类似的测试器来实时查看您的更改,而像瑞格这样的调试器将帮助您了解如何解析正则表达式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42682045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档