我需要關於正則表達式的幫助。瑞典文字符的模式匹配
我不得不這樣匹配字符串: âãa34dc
模式,我已經使用:
\ S * [A-ZA-Z] + [A-ZA-Z_0-9] * \ s
但這種模式不足以識別這種類型的字符串eg ãa34dc
P.S. â這些是瑞典人的性格。
請幫我找出這種字符串的正確模式。
我需要關於正則表達式的幫助。瑞典文字符的模式匹配
我不得不這樣匹配字符串: âãa34dc
模式,我已經使用:
\ S * [A-ZA-Z] + [A-ZA-Z_0-9] * \ s
但這種模式不足以識別這種類型的字符串eg ãa34dc
P.S. â這些是瑞典人的性格。
請幫我找出這種字符串的正確模式。
請給出一套規則。根據你的問題
:
[X-Ya-zA-Z]{3}[0-9]{2}[a-zA-Z]{2}
x替換第一的瑞典字母
更換Y中的最後一個瑞典信
規則與英文字母相同。名稱可能以瑞典字符開頭或可能以英文字母開頭。所以我希望patter符合我上面寫的所有條件。感謝您的時間,並感謝您提出不明確的問題。 – user1213444 2012-04-06 18:41:04
John Machin提供了一個很好的答案。調整他的模式,你需要的東西可能類似於:\s*[^\W\d_]\w*\s*
P.S.我從第一部分刪除了+
量詞。隨後的任何字母都將與隨後量化的\w
相匹配。
規則與英文字母相同。名稱可以以瑞典字符開頭,也可以以英文字母開頭,也可以包含數字和下劃線。所以我希望patter符合我上面寫的所有條件。你的回答根本無助於我解決我的問題。 – user1213444 2012-04-06 19:10:12
不,'\ w'與'[A-Za-z0-9_]'不一樣。在支持Unicode的環境(如.NET)中,\ w將匹配任何字母表(包括瑞典語)的任何字母。你真的打擾了我的模式嗎? – Douglas 2012-04-06 19:54:40
你確實想限制它爲瑞典字符嗎?換句話說,如果德國人不符合?如果是這樣,那麼你可能必須枚舉整個字母表,幷包括它。
如果您真正想要匹配每個字母字符,請使用正則表達式來匹配所有字母。
\w
匹配任何字符,但包括數字&某些標點符號。這很接近,但不是你想要的第二屆任期。
對於第一學期,如果您不想包含數字,請指定該字符應該是一個Unicode'字母'類。 \p{L}
指定了一個字母的所有Unicode字符。這包括[A-ZA-Z],所有的瑞典字符,德語和俄語等
因此,我認爲這正則表達式是你想要什麼:
\s*[\p{L}][\p{L}_0-9]*\s
如果你想包括digits from other character sets和一些other punctuation,那麼你可以在第二學期使用[\w]*
。
一個較小的更正,這可能不會改變現有答案的有效性:「â」和「ã」不用於瑞典語,除了拼寫外國名稱或地方。 OP想要的可能是「åäö/ÅÄÖ」。 – allansson 2017-05-09 16:21:10