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
您在变量部分(例如 [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
你根本不需要 ^
,它匹配字符串的开头。
我需要一个正则表达式来匹配以 "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
您在变量部分(例如 [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
你根本不需要 ^
,它匹配字符串的开头。