2
嗨,讓我們說我有這個字符串:JavaScript的正則表達式 - 的否定(:)
var text = "Jackie Chan | Jack Frost | Capt.Jack Sparrow"
我要找到每一個/Jack/
除了傑克弗羅斯特。
我可以很容易地通過使用?!
做到這一點,但它不包括姓氏
text.match(/[^\s]*Jack[^\s]*(?!\sFrost)/g);
// Result: ['Jackie', 'Capt.Jack']
// I want the result to be ['Jackie Chan', 'Capt.Jack Sparrow']
所以基本上,我需要的?:
否定。有這樣的事嗎?
我不想做(?:Chan|Sparrow)
因爲如果我添加另一個傑克,它不會匹配。
感謝
您好感謝它的工作原理。你能詳細說明最後一部分'(?!\ s + Frost)\ s + \ S +'嗎?沒有找到組時忽略了組(?)? – hrsetyono
是的,lookeaheads是「零寬度」,它們不捕獲任何東西。 – georg