簡體   English   中英

正則表達式匹配除給定完整單詞之外的所有內容

[英]Regex that matches everything except given full word

這類似於javascript 正則表達式 to not match a word ,但接受的答案顯示了一個正則表達式,如果該詞在行內,則該正則表達式不匹配。 我想匹配除完整單詞之外的所有內容。 它將匹配"__lambda__"

這也類似於我的問題Regex 匹配除字符串列表之外的所有內容,但該問題給出了String::split的解決方案,我想使用普通匹配完整字符串。

例如,它應該匹配除/^lambda$/之外的所有內容,我更喜歡為此使用正則表達式,因為它適合我的模式修補功能。 它應該匹配 lambda_ 或 _lambda 以及其他所有內容 -除了完整的“lambda”標記。

我試過這個:

/^(.(?!lambda))+$/

/^((?!lambda).)+$/

這有效

/^(.*(?<!lambda))$/

但如果我可以避免它(因為瀏覽器支持),我寧願不必使用負面回顧。 另外,我有用 JavaScript 編寫的解釋器,我需要它,我想在來賓語言中使用它(我將無法用 babel 編譯正則表達式)。

在沒有后視的情況下,使用正則表達式可以實現這樣的事情嗎?

編輯:

這不是重復的:我不想測試某些內容是否包含或不包含該單詞,但是如果某些內容不是確切的單詞。 Stack Overflow 上沒有這樣的問題。

問題正則表達式:匹配單詞不包含的答案幾乎和我的一樣正確,但這不是問題的完整答案。 (不過,這將有助於找到解決方案。)

我能夠找到基於如何否定正則表達式中的特定單詞的解決方案

 var re = /^(?!.*\\blambda\\b).*$/; var words = ['lambda', '_lambda', 'lambda_', '_lambda_', 'anything']; words.forEach(word => { console.log({word, match: word.match(re)}); });

暫無
暫無

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

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