2010-07-21 41 views
1

我想知道RegEx.IsMatch的結果是否受編碼影響。Regex.IsMatch應用於「字節級」還是「字符串級」?

我正在檢查一個字符串是否包含在另一個通過使用正則表達式模式。

我99.9%確定模式是正確的,所以我的問題是...

與Regex.IsMatch的匹配測試,是在「字節級」或「串級」應用?

UPDATE:

這一個是輸出... TEΣT

這一個是字匹配...... ΤΕΣΤ

這裏是模式...

If Regex.IsMatch(Output, "(?<=^|\b|\s)" & Regex.Escape(Word) & "(?=\s|\b|$)") Then 
'dooooo 
end if 

回答

1

正則表達式具有文化敏感性,所以它使用當前的文化來決定如何處理大小寫感知。

有一個選項RegexOptions.CultureInvariant,您可以使用它來關閉此功能。這導致它使用中性文化。正則表達式仍然可以在字符級別上工作,但字符是一個16位的代碼點,它不是一個字節。

2

.NET中的所有正則表達式函數都使用字節而不是字節編碼。

如果您遇到問題,可能是因爲您的字符串解碼不正確,以致字符串中的某些字符不是正確的字符。如果你可以發佈你的字符串和正則表達式,我們可以解釋它爲什麼不匹配。

+2

我想那時,我99.9%錯了:) – OrElse 2010-07-21 13:59:58

+0

我根據要求更新了問題 – OrElse 2010-07-21 14:15:33