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

Java正则表达式模式未封闭的字符类

艾志尚
2023-03-14
问题内容

我需要一些帮助。我越来越:

Caused by: java.util.regex.PatternSyntaxException: Unclosed character class near index 24
^[a-zA-Z└- 0-9£µ /.'-\]*$
                        ^
        at java.util.regex.Pattern.error(Pattern.java:1713)
        at java.util.regex.Pattern.clazz(Pattern.java:2254)
        at java.util.regex.Pattern.sequence(Pattern.java:1818)
        at java.util.regex.Pattern.expr(Pattern.java:1752)
        at java.util.regex.Pattern.compile(Pattern.java:1460)
        at java.util.regex.Pattern.<init>(Pattern.java:1133)
        at java.util.regex.Pattern.compile(Pattern.java:823)

这是我的代码:

String testString = value.toString();

Pattern pattern = Pattern.compile("^[a-zA-Z\300-\3770-9\u0153\346 \u002F.'-\\]*$");
Matcher m = pattern.matcher(testString);

我必须使用unicode值,因为我正在使用xhtml。

任何帮助将是巨大的!


问题答案:

假设您要匹配\-而不是]

Pattern pattern = Pattern.compile("^[a-zA-Z\300-\3770-9\u0153\346 \u002F.'\\\\-]*$");

您需要加倍转义反斜杠,\正则表达式中的转义字符也是如此。因此\\],对于Java而不是对正则表达式,可以使用反斜杠。您需要添加另一个java-
escaped \以便正则表达式-escape您的第二个Java-escaped \

因此,\\\\在Java转义变成\\regex后转义为\

移动-到序列的末尾意味着将其用作字符,而不是Pshemo指出的范围运算符。



 类似资料:
  • 我需要一些帮助。我得到: 这是我的密码: 我必须对一些文件使用unicode值,因为我使用的是xhtml。 任何帮助都会很好!

  • 问题内容: 我需要这件事的帮助。查看以下正则表达式: 我想查找这样的词:“自制”,“ aaaa-bbb”而不是“ aaa-bbb”,而 不是 “ aaa–aa–aaa”。基本上,我想要以下内容: 单词-连字符-单词。 它适用于所有内容,但该模式会通过:“ aaa–aaa–aaa”,但不应通过。哪种正则表达式适用于此模式? 问题答案: 可以从表达式中删除反斜杠: 下面的代码应该工作 请注意,您可以使

  • 我需要编写一个具有以下规则的正则表达式: null null 这些示例无效: > 12--11(因为它包含两个连字符) 1-2345(因为它包含5号) <>是字符出现在最后一个位置,那么在字符之前必须有一个数字not hypen。 即11-A(必须不及格)11-1A(必须及格)

  • 我是正则表达式的初学者,并尝试搜索特定的数字模式。以下数据以 XML 格式嵌入。 要求是提取数据(最里面的列表)。在这个例子中,数据从24779开始到24760。注意:每次数据可能不是从“24”开始。因此,我计划通过以下逻辑提取:如果标签名(在本例中:DUT_1_PC)具有非零的有效数据,并且有效数据的计数大于100,用逗号分隔,则提取该列表及其标签名(DUT_1_PC)。 我无法提取所需的数据。

  • 我想删除另一个字符串开头的字符串。 示例: 多亏了Regexr,我制作了这个regex: 我尝试在Java中使用它。使用<代码>字符串。matches()我没有任何错误。但是,使用字符串。replaceFirst,我有以下错误: 我还试了什么? 在开始处移除,在结束处移除 (如此处的regex中可见) 多个其他的快速方式,但我的错误总是在我的正则表达式的最后一个字符 我的完整代码: 我怎样才能修复

  • 问题内容: 当匹配某些字符(例如换行符)时,可以使用正则表达式“ \\ n”或仅使用“ \ n”。例如,以下将字符串拆分为行数组: 但是以下内容同样适用: 我的问题: 上面两个是 完全 一样地工作,还是有细微的差别?如果是后者,能否举个例子,说明您得到不同的结果? 还是仅在[可能/理论]表现上有所不同? 问题答案: 在当前情况下没有区别。通常的字符串转义序列是在单个反斜杠的帮助下形成的,然后有效的