我有一个正则表达式
end\\s+[a-zA-Z]{1}[a-zA-Z_0-9]
Run Code Online (Sandbox Code Playgroud)
应该符合规格的线
end abcdef123
Run Code Online (Sandbox Code Playgroud)
其中abcdef123必须以字母和后续字母数字字符开头。
但是目前它也与此匹配
foobar barfooend
bar fred bob
Run Code Online (Sandbox Code Playgroud)
它end在末尾barfooend捡起,并且bar实际上还end bar作为合法结果返回。
我试过了
^end\\s+[a-zA-Z]{1}[a-zA-Z_0-9]
Run Code Online (Sandbox Code Playgroud)
但这似乎根本不起作用。最终没有任何匹配。它应该很简单,但我似乎无法消除。
\s还包括换行符。因此,您需要指定仅具有所需空白字符的字符类,或排除不需要的字符。
使用而不是以下\\s+之一:
[^\\S\r\n]这包括所有空格,但不包括\r和\n。在Regexr上看到end[^\S\r\n]+[a-zA-Z][a-zA-Z_0-9]+这里
[ \t]这仅包括空格和制表符。在Regexr上看到end[ \t]+[a-zA-Z][a-zA-Z_0-9]+这里