我使用Perl,我需要識別具有變音符號等重音字符的字符串。我嘗試使用正則表達式[A-z],但這不起作用。我用Perl代碼片段是:在Perl中識別重音字符
if ($s =~ /^[A-za-z0-9_]+$/) {
# No accented chars, do something
} else {
accented chars, do something else
}
我使用Perl,我需要識別具有變音符號等重音字符的字符串。我嘗試使用正則表達式[A-z],但這不起作用。我用Perl代碼片段是:在Perl中識別重音字符
if ($s =~ /^[A-za-z0-9_]+$/) {
# No accented chars, do something
} else {
accented chars, do something else
}
你可以嘗試這樣的事情:
if ($s =~ /[^\P{Latin}A-Za-z]/) {
# accented chars, do something
} else {
# No accented chars, do something else
}
\p{Latin}
包含拉丁字母(包括重音字母和喜歡ç œ æ...
字符)。你可以否定這個類有一個大寫的Y:\P{Latin}
(即包含了除拉丁字母的所有字符。)
如果你把它放進一個否定的字符類:[^....]
你獲得兩個否定。所以[^\P{Latin}]
與\p{Latin}
相同。但是因爲你有一個否定字符類,你可以很容易地排除你不想要的字符:[^\P{Latin}A-Za-z]
可能想檢查[this](http://perldoc.perl.org/perlre.html#Regular-Expressions)out 。希望能幫助到你! – Cullub 2014-09-20 22:29:12
我認爲這取決於語言環境,但如果您在擴展範圍內的所有內容都是重音字符,則可以使用'[\ x80- \ FF] +'。 – sln 2014-09-20 23:12:11