8 到 10 个字母单词的正则表达式

Regular expression for 8 to 10 letter words

我需要一个正则表达式来匹配以 "tion" 结尾的 8 个字母的单词或以 "able" 结尾的 10 个字母的单词。

这是我想到的,但由于某种原因 http://regex101.com 告诉我在尝试匹配字符串时没有匹配项。

我的思路是这样的:

([a-z]{4}^\btion\b|[a-z]{6}^\bable\b)

Link 到 regex101 - Here

试试这个:

\b([a-z]{4}tion|[a-z]{6}able)\b

Demo

您在变量部分(例如 [a-z]{4})和常量后缀(例如 tion)之间使用了 ^\b,这会中断匹配。 ^ 表示 "beginning of the string (or a line)",\b 表示 "word boundary"。一起使用它没有什么意义,因为字符串的开头始终是单词边界。

\b 匹配单词边界。你应该只在单词的开头和结尾使用它,而不是在后缀之前。您可以将它放在分组括号之外,因为所有备选方案都应该在单词边界处匹配。

\b([a-z]{4}tion|[a-z]{6}able)\b

你根本不需要 ^,它匹配字符串的开头。