2012-01-28 43 views
19

當我使用特定語言環境插入正則表達式對象時,它如何影響匹配行爲?它會影響整理或其他任何內容嗎?我似乎無法在任何地方找到解釋。正則表達式庫中的語言環境特定行爲?

+0

參見http://stackoverflow.com/q/10540305/83805 – 2012-06-03 21:09:26

+0

@DonStewart:我只對C++特性感興趣。特定場景的行爲並不一定是我想象中的任何地方。 – 2012-06-03 21:12:24

+1

區域設置會影響POSIX兼容的正則表達式引擎,它至少是大多數正則表達式庫的起點。 – 2012-06-03 21:35:33

回答

42

它會影響至少包括以下:

  • 整理:具有法語區域設置應匹配字符E充滿正則表達式[a-f]
  • 同樣,\w在芬蘭語言環境應該匹配字符(但[a-z]應該作爲,A型和O在芬蘭Z後整理。在德國,但是,[a-z]應該匹配。)
  • 在一個Unicode兼容的語言環境,應該使用Unicode equivalence算法,以便字符的組合形式與分解形式匹配,反之亦然。
  • 對於兼容POSIX的正則表達式(基本,擴展,awk,grep和egrep),POSIX character classes應該是本地感知的:[=e=]應該與法語語言環境中的é匹配,但不能與英語語言環境匹配。
3

在西班牙語語言環境中,請注意「ch」和「ll」不再視爲字母表中的單個字母,因爲這已由相關實體更改。我無法找到確切的日期,但現在「CH」和「會」是兩個字母:

http://en.wikipedia.org/wiki/Ll

我認爲現在的實現反映了事實。