我正在尝试为 while
构建正则表达式循环包含在我的程序中。这是我到目前为止想出的:
https://regex101.com/r/aL0zC7/1 1
/^ *while +\( *([a-zA-Z][a-zA-Z0-9_]*) *([=<>]) *([a-zA-Z][a-zA-Z0-9_]*|[0-9]+) *\) *$/
但问题是我要条件包括
==, <, >, <=,>=
为了测试(a==5)
或 (a<=5)
或 (a>=5)
, 而不仅仅是 =,<,>
.我尝试将以下模式添加到我的表达式中:([=<>])
.
我怎样才能做到这一点?
最佳答案
此正则表达式将匹配所有情况:
*while +\( *([a-z]\w*) *([=<>]=?) *([a-z]\w*|\d+) *\) *
我主要加了一个量词+
至 [=<>]+
, 并删除了 anchor ^
和 $
为了更好的可视化(如果您测试单个字符串,您可以还原它们)。
我替换了[a-zA-Z0-9_]
与 \w
(它们是相同的)和 [0-9]
几乎相同\d
.不区分大小写 i
选项应该适用于 [a-z]
字符类。
如果您还计划添加 !=
支持,试试:
*while +\( *([a-z]\w*) *((?:!=|[=<>]=?)) *([a-z]\w*|\d+) *\) *
关于javascript - 如何为 while 循环构建正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995820/