我想创建一个匹配任何小写字母的正则表达式,但不包括'return'和'while',是否可以这样做?我不想解决这样的:正则表达式匹配小写字词,但使用Flex排除某些单词(快速词法分析器)
return {/*nothing*/}
while {/*nothing*/}
[a-z]+ {/*some code*/}
我想创建一个匹配任何小写字母的正则表达式,但不包括'return'和'while',是否可以这样做?我不想解决这样的:正则表达式匹配小写字词,但使用Flex排除某些单词(快速词法分析器)
return {/*nothing*/}
while {/*nothing*/}
[a-z]+ {/*some code*/}
我不是你想要的100%清楚,但这可能会有所帮助:
\b(?!(?:return|while)\b)[a-z]+
它匹配
\b # A word break.
(?!(?:return|while)\b) # This is a negative look around
# saying don't match if a return
# or while is matched followed by
# a word break.
[a-z]+ # Match 1 or more lowercase letters.
这是我为FLEX找到的一些文档。它没有提及单词边界'\ b'或负面预测'(?!regex)'。 http://flex.sourceforge.net/manual/Patterns.html#Patterns –
嗯,我知道你的意思,也许你的答案会在一些正则表达式系统中工作,但flex不支持“!”和“\ b” – xudifsd
此文档是否支持您的FLEX版本? http://flex.sourceforge.net/manual/Patterns.html#Patterns –
不,我的版本是flex 2.5.35 – xudifsd
我看了上面的评论中的文档,并且找不到办法去做,除了你描述。你为什么不接受? –