2012-09-03 69 views
0

以下是本次比賽。
它與上面的雙點相匹配的所有形式的字符。
其他形式的角色是什麼?
我只想要a-z,A-Z和帶重音的a-z。
什麼是適當的正則表達式?正則表達式只匹配正常字符加強音

(?:[-_'@\w]+) 
+1

你想要哪種口音?只是尖銳的(á)和墳墓(à)的口音,或者你是否還想讓旋風(â),波浪形(ã),分音(ä),圓環(å),卡倫(š)等等?爲什麼你想讓重音a-z,但不重音A-Z?爲什麼不用其他拉丁字母表字母(例如ç,Ð,ñ,ø,Þ,æ,œ,ß)?爲什麼不是西裏爾字母或其他字母? –

+0

@JoeWhite很棒的評論。我想要的是美國通常會出現的角色。我的意思是尖銳的(á) - 我正在學習。並沒有一個完美的答案。我該如何從簡單的字符開始,只添加一個特殊的表單,然後我可以從中取出。我正在解析可能是任何東西的文件,並且需要將其限制爲在美國成爲真實詞彙的詞彙。 – Paparazzi

回答

1

即使你只是想匹配英語中常用的單詞,你仍然會錯過某種方式。例如,詩歌的口音(「一個非常有學問的人」)使用grave accents,而不是你要求的尖銳口音。英語也因盜竊其他語言的文字而聞名,比如說,厄爾尼諾,外牆。你會很難用一些名字,例如Chloë以及偶爾使用傳統拼寫方式的人,比如copeperate(我在技術博客上看到過不止一次的拼寫,人們傾向於堅持不同尋常的細節)。

所以你所要求的通常不是很有用,因此,你很難找到預先建立的東西去做。你只需要自己做這項工作。編寫一個匹配ASCII A-Za-z的正則表達式,然後手動列出所有其他所需。

(?:[-_'@A-Za-záéíóúý]+) 
+0

我沒有預料到預先構建的東西。 – Paparazzi

1

使用Unicode類別或Unicode塊:

\p{L}+ 

\p{L}表示所有字母字符。

+0

不正確。具體說明,上面的雙點上的字符不匹配。與Regex.IsMatch匹配(「Ä」,@「\ p {L} +」)。 – Paparazzi

+0

但是+1因爲這給了我信息 – Paparazzi