如何在ColdFusion或Java正则表达式中匹配拉丁语unicode字符?
我正在寻找仅匹配数字[0-9],字母[az],但不包含ASCII
字母(unicode拉丁字母,如ç
和ã
)的ColdFusion或Java regex(用于替换功能)。
像这样:
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]
用来匹配字母和数字,但这不匹配诸如ç
和的字母ã
。
回答:
尝试字母数字字符类:\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]
是指:
此类中的任何字符(所有字母,空格,数字)。因此,它与您的示例匹配,?:#$%
我们可以将这些字符替换为空字符串。
以上是 如何在ColdFusion或Java正则表达式中匹配拉丁语unicode字符? 的全部内容, 来源链接: utcz.com/qa/403402.html