正则表达式。找到所有非拉丁字符的单词

时间:2012-09-19 07:12:46

标签: c++ c regex locale

如何使用regex.h库找到包含至少一个非拉丁字母(阿拉伯语,中文...)的所有单词?

城市دبي

3 个答案:

答案 0 :(得分:2)

怎么样:

(?=\pL)(?![a-zA-Z])

这将匹配任何不是拉丁字母的字母表中的字母:

not ok - cityدبي
ok - city
not ok - دبي

答案 1 :(得分:0)

试试这个:

[a-zA-Z]*[^A-Za-z \d]+[a-zA-Z]*

表示:一个或多个非拉丁字母前面或后面跟着一个或多个拉丁字母,即包含至少1个非拉丁字符的单词。 请参阅带有一些随机文本的demo: http://regexr.com?326s3

您可能需要根据需要调整此正则表达式,并根据您的输入添加数字,特殊字符,字边界等内容。

答案 2 :(得分:-1)

只需使用[^a-zA-Z] 如果不匹配,它应该包含一个国际字符...