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

在正则表达式中获取非法字符范围:java

宗政小林
2023-03-14
问题内容

我有一个验证名称的简单正则表达式模式。但是当我运行它时,我得到了非法的字符范围错误。我认为通过转义“ \ s”将允许一个空格,但编译器仍在抱怨。

public boolean verifyName(String name) {
    String namePattern = "^[\\p{L}]++(?:[',-\\s][\\p{L}]++)*+\\.?$";
    return name.matches(namePattern);
}

这是我认为不应该发生的错误,因为名称可能包含这些内容的保姆 [',-\\s]

所以我在哪里不了解?


问题答案:

您不能有范围“从,到空白”。也许您打算逃避-

\s不是空格,而是空格[ \t\r\n\v\f](空格,制表符,回车符,换行符,垂直制表符或换页)。

会起作用的事情:

"[ ',-]"

"[',\\- ]"


 类似资料:
  • 我的正则表达式是 当我在java中使用Pattern.complie()编译时,我得到了*非法重复字符* 我测试了这个正则表达式 当我编译这个时,它没有显示错误。 为什么会发生这种情况?

  • 说到正则表达式,我没那么令人印象深刻。。。 我试图匹配一个单词中除第二个字符外的所有字符。 我想匹配 示例字符串: 我提出了以下两个正则表达式。 除第一个字符外,此字符与“uml”匹配( -- 这与第一个字符匹配,除了最后3个(uml)

  • 问题内容: 我正在使用正则表达式来验证字符串中的特定格式。该字符串将成为游戏规则。 示例:根据规则,“ DX 3”也可以,但是“ DX 14”也可以。。。我知道如何查看字符串并找到一个或多个“数字”,因此问题在于正则表达式将也匹配34,这个数字超出了规则的“范围” … 我是否缺少有关正则表达式的功能?还是根本不可能? 问题答案: 不幸的是,没有简单的方法可以在正则表达式中定义范围。如果要使用范围1

  • 我试图验证用户输入坐标的格式是:x,y,所以我使用正则表达式。x和y可以在1到15之间,所以我用了 更重要的是,使用Java的正则表达式特性是好的实践吗?我可以想出其他方法来做到这一点,但这只是为了一个我正在工作的个人项目,并尝试不同的方法来处理我通常做得很乱的事情。

  • 问题内容: 在正则表达式中匹配非ASCII字符的最简单方法是什么?我想在输入字符串中单独匹配所有单词,但是语言可能不是英语,因此我需要匹配ü,ö,ß和ñ。另外,这是在Javascript/ jQuery中,因此任何解决方案都需要适用于此。 问题答案: 应该这样做: 它匹配ASCII字符集(0-127,即0x0至0x7F)中不包含的任何字符。 您可以使用Unicode执行相同的操作: 对于unico

  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以