正则表达式语言使用\ B来包含A..Z,a..z,0..9和_,而\ b被定义为单词边界。
如何编写一个匹配所有有效西班牙语单词的正则表达式,包括:á,í,ó,é,ñ等字符?
我正在使用.NET。
答案 0 :(得分:6)
使用西班牙语区域设置并使您的正则表达式区域设置敏感。
答案 1 :(得分:1)
你的正则表达式系统应该具有与Python的re.L
(又名re.LOCALE
)相同的东西,以使正则表达式依赖于语言环境,因此什么是单词字符,什么不是语言环境的变化,如你是否想要一种方法来补偿一些给定的正则表达式系统而不是支持语言环境,试图强制解决问题......?
答案 2 :(得分:1)
这在很大程度上取决于您正在使用的语言(和正则表达式引擎)。
在Perl中,\w
匹配所有单词字符,无论语言或字母如何,/\b(\w+)\b/
之类的内容(可能)会匹配西班牙语单词以及英语单词或俄语单词。
在使用PCRE的语言中,\w
(因此可能\b
)与Unicode字符不匹配。您可能需要构建自己的集合。我建议像[\wáéíóúñ]
(匹配所有单词字符,加上你想要的重音字符),并且PCRE库必须预先构建Unicode支持,然后才能工作。
如果你正在使用别的东西,祝你好运。一些正则表达式引擎甚至不支持Unicode。