我正在寫一個wordle助手。是否有一種正則運算式格式表示“僅當所有這些字母都以任何順序出現時才匹配”?字符類語法[abc]是 OR 操作;我正在尋找等效的 AND。
例如,“cranberry”會匹配/{abc}/,但缺少“b”的“cranny”不會匹配。
我知道$word =~ /^(?=.*a)(?=.*b)(?=.*c)/, and also的答案$_= $word; /a/ && /b/ && /c/,但我想知道是否還有更優雅的東西。
uj5u.com熱心網友回復:
[abc]表示字符必須是aorb或c。
要匹配字符aandb和c,您可以使用(?[ ... ]). [1]
(?[ [a] & [b] & [c] ])
但當然,你不想要 AND。你要
(?: a.*b.*c
| a.*c.*b
| b.*a.*c
| b.*c.*a
| c.*a.*b
| c.*b.*a
)
這/a/ && /b/ && /c/是一個非常優雅的解決方案。
- 這是一項實驗性功能,但我預測它會被接受而不會改變。
uj5u.com熱心網友回復:
如果您想要a并且以任何順序b,c您可以:
$matches = ($word =~ /a/ && $word =~ /b/ && $word =~ /c/);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/460603.html
下一篇:帶有正則運算式的熊貓
