0
我試圖匹配以單詞邊界結尾的關鍵字。但是,關鍵字是動態的,可能以非單詞字符結尾。可以匹配單詞/非單詞邊界還是非單詞/非單詞邊界?正則表達式捕獲單詞/非單詞和非單詞/非單詞的邊界
因此,例如關鍵字是Hi
,我希望它匹配Hi!!
或Hi Hi
但不HiHi
。這可以通過Hi\b
完成。但是如果關鍵字是Hi!
,我希望它匹配Hi!Hi
和Hi!!
。使用Hi\b
的結果不匹配。
任何方向表示讚賞。
我試圖匹配以單詞邊界結尾的關鍵字。但是,關鍵字是動態的,可能以非單詞字符結尾。可以匹配單詞/非單詞邊界還是非單詞/非單詞邊界?正則表達式捕獲單詞/非單詞和非單詞/非單詞的邊界
因此,例如關鍵字是Hi
,我希望它匹配Hi!!
或Hi Hi
但不HiHi
。這可以通過Hi\b
完成。但是如果關鍵字是Hi!
,我希望它匹配Hi!Hi
和Hi!!
。使用Hi\b
的結果不匹配。
任何方向表示讚賞。
您可以捕捉字非字字符
>>> /[\w]+[\W]/.test('hi!')
true
>>> /[\w]+[\W]/.test('hihi')
false
或者使用邊界符號捕獲性狀改變成非單詞:
>>> /[\w]+\b/.test('hi!')
true
>>> /[\w]+\b/.test('hihi')
false
或者乾脆用字符組。
請注意,邊界符號是零長度值。 有一個很好的網站,詳細解釋它:Regex tutorials
我不明白。如果關鍵字是'Hi',則使用'Hi \ b';如果它是'Hi!',請使用'Hi!'。有什麼問題? – ruakh
@ruakh我_think_關鍵字存儲在一個變量中,如果將\ b添加到變量中,您還將\ b添加到潛在的「Hi!」中。但是,我不能說我理解這些限制背後的原因。 – Jerry
你使用哪種語言或工具正則表達式? –