Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 8到10个字母单词的正则表达式_Php_Regex_Regular Language - Fatal编程技术网

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

Php 8到10个字母单词的正则表达式,php,regex,regular-language,Php,Regex,Regular Language,我需要一个正则表达式,它匹配以“tion”结尾的8个字母单词或以“able”结尾的10个字母单词 这是我想到的,但出于某种原因,我告诉我,当我尝试匹配字符串时,没有匹配项 我的想法如下: ([a-z]{4}^\btion\b|[a-z]{6}^\bable\b) 链接到regex101-试试这个: \b([a-z]{4}tion|[a-z]{6}able)\b 您在变量部分(例如[a-z]{4})和常量后缀(例如tion)之间使用^\b,这会中断匹配^表示“字符串(或一行)的开头”,而\b

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

这是我想到的,但出于某种原因,我告诉我,当我尝试匹配字符串时,没有匹配项

我的想法如下:

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

试试这个:

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


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

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

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

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

我认为您不需要
^\b
选项
able
后缀之前。这应该行得通:
\b([a-z]{4}选项|[a-z]{6}}able)\b
您在这里已经7年了,您应该知道“试试这个”在回答中不是一个很好的解释。以“试试这个”开头并稍后提供解释(在本例中仅为150秒)是很常见的。只需键入“这有什么问题?”?如何通过键入子字符串来匹配精确的子字符串?