如何在ColdFusion或Java正则表达式中匹配拉丁语unicode字符?

时间:2011-07-01 13:47:21

标签: java regex coldfusion

我正在寻找一个只能匹配数字[0-9],字母[az]但不包含ASCII 葡萄牙语字母的ColdFusion或Java正则表达式(用于替换函数) (unicode latin,如çã)。

有些人喜欢这样:

str = reReplaceNoCase(str, "match none number/letter but keep unicode latin chars", "", "ALL");

Input string: "informação 123 ?:#$%"
Desired outcome: "informação 123"

我知道我可以将字母和数字与[a-z][0-9]匹配,但这与çã等字母不匹配。

1 个答案:

答案 0 :(得分:7)

尝试字母数字字符类:\w,它应匹配字母,数字和下划线。

你也可以使用特殊的命名类\p{L}(我不知道,Java RegEx解析器是否支持它)。 所以在C#中,您可以使用以下代码完成任务:

var input = "informação 123 ?:#$%";
var result = Regex.Replace(input, @"[^\p{L}\s0-9]", string.Empty);

正则表达式[^\p{L}\s0-9]表示:此类中的任何字符(所有字母,空格,数字)。因此它在您的示例?:#$%中匹配,我们可以用空字符串替换这些字符。