簡體   English   中英

PHP Regex將句子中的單詞與其他某些特定單詞匹配(可選)

[英]PHP Regex to match word in a sentence with optionally only other certain words

我正在尋找一個PHP正則表達式來匹配句子中的單詞,該單詞也可以選擇允許句子中的其他單詞,但是如果句子中有其他單詞不在允許列表中,則匹配失敗。 例如:

The quick fox

在這里我正在尋找狐狸。 如果出現“ the”和“ quick”,也可以。 由於這些詞是可選的,因此

fox 

也可以。 然而,

The quick brown fox

不好。 我不要棕狐狸。

也可以隨意提出另一種方法,但這需要快速發展。

編輯:單詞將出現在fox之前,但它們可以以任何順序出現,因此

 quick The fox

也應該匹配。

只需將前兩個字設為可選即可。

^(?:(?:The )?(?:quick )?fox|(?:quick )(?:The )?fox|(?:fox )?(The )?quick|(?:The )?(?:fox )?quick)$

好的,我認為我找到了一個不太復雜的解決方案,據我測試,它似乎可以滿足我想要的結果

 ^(?(?=\b)(?:The|quick|\W)|.)+?fox

我在這里檢查每個字符,看是否是單詞邊界。 如果是,則必須在該點上匹配“ the”或“ quick”或一個非單詞字符(表明您在單詞的末尾)。 直到我匹配“ fox”為止。 如果我匹配允許的單詞以外的其他單詞,則匹配失敗。

暫無
暫無

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

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