我正在写一个通用表达式来匹配以不同字母开头和结尾的单词。
我尝试了^(.).*(?![^\1]$)
。但这不起作用。
要测试的一些单词:“ aa
”,“ ab
”,“ aba
”,“ aab
”,“ abc
”。
答案 0 :(得分:2)
您不能在字符集中放置反向引用-而是在最后一个字符之前对第一组(没有字符集)进行负向超前查找,然后匹配任意字符和字符串的结尾:
^(.).*(?!\1).$
答案 1 :(得分:0)
这取决于您对“单词”的定义(允许使用哪个字符)
\b(\w)\w*(?!\1)\w\b
此第一个正则表达式将从句子中识别出所有符合条件的单词(该单词(和单词length>=2
中的最后一个单词char与最后一个单词char不同)。
如果在正则表达式中使用.
,它将匹配任何字符(行终止符除外),其中包括空格...
如果您的输入已经是单词,则可以用^(\ w)\ w *(?!\ 1)\ w $代替,也可以将\w
(相当于[a-zA-Z0-9_]
)更改为一个更适合您的范围或一个预定义的字符类(取决于您的正则表达式引擎\p{L}
,[[:Alpha:]]
,\p{Alpha}
,...)。