簡體   English   中英

Perl正則表達式中的多個條件

[英]Multiple conditions in a Perl regex

這是一個關於Perl正則表達式的非常具體的問題,我希望它不會錯位。

我有一個正則表達式匹配以下幾個單詞之一:

/foo|pizza|chicken/

且匹配5個或更多單詞的單詞:

(?:\\w+ ?){5,}

我需要將這兩個都合並到一個正則表達式中(實現限制)。 單個正則表達式可能嗎?

  • 我喜歡吃很多比薩餅。 應該匹配
  • 我喜歡雞肉披薩。 應該匹配
  • 我需要有關正則表達式的幫助。 不應該匹配
  • 我喜歡foo。 不應該匹配

提前致謝!

是的,您可以使用正向超前斷言來添加條件:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\b\w+\b ?){5,}/

在regex101.com上進行實時測試。

我添加了單詞邊界錨,以避免在foodpizzazz等單詞上出現不匹配,並確保\\w+始終匹配整個單詞。

一種稍微更有效的替代方法是使用所有格修飾符來確保同一件事:

/^(?=.*\b(?:foo|pizza|chicken)\b)(?:\w++ ?){5,}/

在regex101.com上進行實時測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM