以下是返回0
;有沒有什麼辦法可以得到4
的價值?帶文字邊界的正則表達式索引值
var searchString = "two";
var result = Regex.Match("one two", "\b" + searchString + "\b").Index
以下是返回0
;有沒有什麼辦法可以得到4
的價值?帶文字邊界的正則表達式索引值
var searchString = "two";
var result = Regex.Match("one two", "\b" + searchString + "\b").Index
你應該使用逐字字符串:
Regex.Match("one two", @"\b" + searchString + @"\b").Index
^ ^
在你的代碼中,\b
被解釋爲退格字符。用@
前綴字符串文字會使編譯器忽略字符串轉義序列,並將\b
按原樣傳遞給正則表達式引擎。
這工作:
Regex.Match("one two", "\\btwo\\b").Index
我不能使用逐字字符串,因爲在我的作品例如字符串「二」是一個變量。謝謝您的幫助!
If 'two'是一個變量,您可以使用'@「\ b」+ pattern + @「\ b」'但這並不會改變可讀性。 –
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
varbatim string'Regex.Match(「one two」,@「\ btwo \ b」)。索引' –
varbatim string'Regex.Match(「one two」,@「\ btwo \ b」)。索引' –