我需要一个匹配单词和单词组合的正则表达式,但是,我不知道这些单词旁边会是什么。我需要匹配水果苹果,巴巴纳和橙子。水果将被空格隔开。
"sometext apple bananamoretext"
//Should match "apple banana"
"sometext appledifferentmoretext"
//Should match "apple"
"sometext bananaadditionaltext"
//Should match "banana"
"sometext apple orangesomethingelse"
//Should match "apple orange"
我拥有的是:
/sometext\s((apple|banana|orange)(\s+))*/
但我只能apple
无法获得其他水果
答案 0 :(得分:1)
您可以将此正则表达式用于匹配:
(?:apple|banana|orange)(?:\s+(?:apple|banana|orange))*
RegEx分手:
(?:apple|banana|orange)
:匹配其中一个给定的水果名称(?:
:启动非捕获组
\s+
:匹配1个或更多空格(?:apple|banana|orange)
:匹配其中一个给定的水果名称)*
:结束非捕获组。匹配0个或更多这些组