当前位置: 首页 > 知识库问答 >
问题:

Java正则表达式指定数字范围[重复]

杭永安
2023-03-14

我试图验证用户输入坐标的格式是:x,y,所以我使用正则表达式。x和y可以在1到15之间,所以我用了

[1-15]\\d{1,2},[1-15]\\d{1,2}
\\d{1,2},\\d{1,2}
\\d{1}|[1]\\d[0-5]\\d...

更重要的是,使用Java的正则表达式特性是好的实践吗?我可以想出其他方法来做到这一点,但这只是为了一个我正在工作的个人项目,并尝试不同的方法来处理我通常做得很乱的事情。

共有1个答案

邬宜然
2023-03-14

我认为您对[...]的理解是错误的:它意味着您指定了一个字符范围。所以[1-15]意味着:115。因此,它等效于15

但是,可以用[1-9]1[0-5]指定数字1到15。将其插入到您的regex中会导致:

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

  • 问题内容: 我有一个验证名称的简单正则表达式模式。但是当我运行它时,我得到了非法的字符范围错误。我认为通过转义“ \ s”将允许一个空格,但编译器仍在抱怨。 这是我认为不应该发生的错误,因为名称可能包含这些内容的保姆 所以我在哪里不了解? 问题答案: 您不能有范围“从到空白”。也许您打算逃避? 不是空格,而是空格(空格,制表符,回车符,换行符,垂直制表符或换页)。 会起作用的事情:

  • 问题内容: 我想检查一个字符串是否匹配1-2个字母,1-4个数字和1个字母的模式。(例如: CC44C , C4444C )。 我知道这将完全匹配2个字母,4个数字和1个字母的模式。(例如: CC4444C ) 但是,如何使它与范围(即1-2个字母,1-4个数字)匹配的模式呢? 我已经尝试过,但是它给了我以下错误: 问题答案: 您需要将{1-2}更改为{1,2},您可以理解为{minimun,ma

  • 问题内容: 如何在Java Regex中定义重复组? 假设一个2位数[0-9] {2}多次用分隔, 这是可能的还是唯一的机会? 编辑:我想验证并提取。 问题答案: 最简单的方法是使用两步解决方案:1)首先,验证字符串,然后2)用您选择的定界符分割字符串: 在此,匹配以两位数字开头的整个字符串,然后匹配出现的0个或多个和结尾的两位数字,然后用逗号分割该字符串。注意你不需要和美女主播与图案内,因为该方

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

  • 是否可以按任意顺序定义嵌套的正则表达式? 以下程序按预期工作: 如果交换前两行,编译器将产生错误。 有没有办法覆盖这个限制(不使用)?