我正在研究一個正則運算式,旨在禁止在 url 中包含某些單詞的本地網站。網站的結構是:http|https://mysite.si,禁止詞可能出現在“.si”之前或之后(在路徑中)。我這樣做是因為我的內容過濾器不太擅長阻止我不希望我的孩子接觸到的本地網站。到目前為止,我想出了以下幾點:
(?!.*(word1|word2|word3...|wordx))(https|http)://.*[.]si
其中 wordx 代表禁用詞。雖然我很高興上述過濾掉了我想要過濾掉的內容,但我發現性能太慢(單詞串列由 400 個單詞組成),并且非常感謝任何提高性能的建議。
uj5u.com熱心網友回復:
您可以通過將交替更改為https?://并首先匹配協議,在其后添加負前瞻來使模式性能稍好一些。
為了匹配字串,如果不能有空格,您可以將.*to更改\S*為匹配非空白字符。
如果您可能知道哪些詞比其他詞出現得更多,您可以在開頭添加更頻繁的詞,例如使量詞非貪婪以更快地獲得斷言結果。
為了防止部分匹配,您可以\b在模式周圍添加單詞邊界。
根據單詞串列,您還可以\b(?:word1|word2|word3)\b在組周圍添加單詞邊界。
\bhttps?://(?!\S*?(?:word1|word2|word3...|wordx))\S*[.]si\b
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344563.html
下一篇:拍攝快照時未找到索引例外
