簡體   English   中英

正則表達式不包含多個單詞

[英]Regex does not contain multiple words

如何使用正則表達式避免字符串中的某些單詞

字符串不應包含測試,使用以下表達式的示例單詞

^((?!(sample|test)).)*$

我可以做到,但在某些情況下失敗

 example: 
    1) this is a test case 
    2) this is a testing area 

在以上兩個示例中

1.它有一個單詞測試,所以很好用,但是在例子中
2)它應該沒有單詞測試

有什么辦法可以做到這一點? 感謝您寶貴的時間和回復

您需要在單詞周圍使用\\b ,以便它們允許匹配,僅當它們不作為完整單詞出現時才適用。 試試這個

^(?:(?!\b(sample|test)\b).)*$

另外,除非您打算使用其值,否則最好將一個組設為非捕獲組。

正則表達式演示

編輯:

為了使其區分大小寫,請在正則表達式中的/之后放置i啟用i標志。 JS演示

 var arr = ['this is a test case','this is a testing area','this is a Test area'] arr.forEach(s => console.log(s + " --> " + /^(?:(?!\\b(sample|test)\\b).)*$/i.test(s))) 

嘗試使用此正則表達式(單詞邊界'\\ b'是必需的,並且在這些示例單詞之前還可以出現任意數量的字符):

/^(?!.*?\b(sample|test)\b)/

它也將匹配空字符串,因為其中不包含樣本或測試詞。 要檢查字符串是否不能為空並且不包含樣本和測試詞,請使用:

/^(?!.*?\b(sample|test)\b).+?/

暫無
暫無

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

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