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

时间:2019-01-07 21:13:11

标签: php regex regular-language

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

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

我的想法如下:

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

链接到regex101-Here

2 个答案:

答案 0 :(得分:4)

\b与单词边界匹配。您仅应在单词的开头和结尾使用此字符,而不要在后缀之前使用。您可以将其放在分组括号之外,因为所有其他选项都应在单词边界匹配。

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

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

答案 1 :(得分:3)

尝试这个:

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

Demo

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