我正在尝试匹配WORD中的最后一个字符。
WORD是非空格字符'[^ \ n \ r \ t \ f]'的序列,或匹配^ $的空行。
我要做的表达是:“ [^ \ n \ t \ r \ f] \(?:[\ $ \ n \ t \ r \ f] \)”
正则表达式匹配在空格字符或行尾之后的非空格字符。
但是我不知道如何阻止它从结果中排除以下空格字符,以及为什么它似乎没有捕获到行尾之前的字符。
我期望使用字符串“ Hi World!”:“ i”和“!” 被捕获。
相反,我得到:“ i”。
我可以采取什么步骤解决此问题?
“单词”即一系列非空白字符的场景
注意,非捕获组(?:...)
中[^ \n\t\r\f](?:[ \$\n\t\r\f])
仍然匹配(消耗)的空白字符(因此,它变成了匹配的一部分),它不会在字符串的末尾匹配为$
符号不是字符内部的串端锚类,它被解析为文字$
符号。
您可以使用
\S(?!\S)
的\S
匹配的非空白字符后面没有与非空白字符(由于(?!\S)
负先行)。
一般的“单词”大小写
如果一个单词仅由字母,数字和下划线组成,也就是说,如果与匹配\w+
,则可以简单地使用
\w\b
在这里,\w
匹配一个“单词” char,单词边界表明之后没有单词char。
参见另一个正则表达式演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句