当前位置: 首页 > 面试题库 >

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

司马振国
2023-03-14
问题内容

我正在寻找仅匹配数字[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]是指: 不在
此类中的任何字符(所有字母,空格,数字)。因此,它与您的示例匹配,?:#$%我们可以将这些字符替换为空字符串。



 类似资料:
  • 问题内容: 我已经阅读了Stackoverflow上的其他问题,但还没有结束。抱歉,如果已经可以回答,但是我没有任何建议在那里工作。 一切都很好,然后我尝试使用其中包含挪威字符的内容(或更像unicode的内容): 如何匹配øæå等典型的unicode字符?我希望能够同时在上述标记组和文件名标记组中匹配这些字符。 问题答案: 您需要指定标志, 并 使用前缀将您的字符串输入为Unicode字符串:

  • 问题内容: 我正在尝试制作一个Java正则表达式,以使用Pattern.split()将常规格式“ foo-bar”的字符串拆分为“ foo”和“ bar”。“-”字符可以是几个破折号之一:ASCII’-‘,em-破折号,en-破折号等。我构造了以下正则表达式: 如果我正确阅读了Pattern文档,则当在两边都被空格包围时,应该捕获任何Unicode破折号或ASCII破折号。我使用的模式如下: 不

  • 问题内容: 在StackOverflow上有很多问题和答案,假设可以在regexp中使用来匹配“字母” 。但是,使用Unicode时,会有更多的字符被大多数人视为字母(所有希腊字母,Cyrllic ..等等)。Unicode定义了许多块,每个块可能都有“字母”。 Java定义 为诸如字母字符之类的东西定义了Posix类,但是被指定为仅与US- ASCII一起使用。预定义的字符类将单词定义为,其中还

  • 问题内容: 当字符串以数字开头时,我需要匹配,然后是一个点,然后是一个空格和1个或多个大写字符。匹配必须发生在字符串的开头。我有以下字符串。 我尝试过的正则表达式是: 它不匹配。一个有效的正则表达式将对这个问题有什么作用? 问题答案: (对不起,我先前的错误。大脑现在坚定地投入了。嗯,也许。) 这有效: 分解: =字符串开头 =一个或多个数字 (之所以转义,是因为它在字符串中,因此) =文字(或者

  • 问题内容: 我从以下格式的文件中获取输入: 现在,我想在我的Java代码中读取int1,int2,int3和int4。我该如何在Java中使用正则表达式匹配。谢谢。 问题答案: 为了避免空值:

  • 我试图创建一个unicode正则表达式,它匹配每个字符,除了一个字母(任何语言的)和标点符号。 比如字符串 abcd 123 kjd·%/(“?:!”! 应该只匹配下面的粗体部分 abcd 123 kjd·%/(“?:!”! 我知道匹配除字母之外的所有内容,匹配除标点符号之外的所有内容。我如何将这两个正则表达式字符串组合为一个?我已经尝试过简单地将放在一起,但这并没有给出所需的匹配。我也尝试过编写