我正在尝试找到一种方法来实现识别只有一个下划线的令牌,并且不允许以下划线开始或结束。如下所示:
abc_def:VALID TOKEN
_abc:NOT VALID TOKEN
abc_:NOT VALID TOKEN
我无法理解当下划线后面的字符会重复时,我只能允许一个下划线。这可能是flex / lex中的正则表达式吗?
答案 0 :(得分:1)
正则表达式:^[^_]+_[^_]+$
说明:
[^_]+
- >任何不是_
至少有一个角色的东西。_
- >下划线^
和$
是分别对字符串的开头和结尾进行分隔的锚点。如果您想将正则表达式限制为3个字符,请使用{3}
代替加号。
答案 1 :(得分:-1)
Python中的一个例子:
In [1]: import re
In [2]: re.findall(r'\b[^\s_]+_[^\s_]+\b', 'abc_def, abc__def, __abc_def, abc_def__')
Out[2]: ['abc_def']