正则表达式匹配字符然后编号

时间:2013-10-08 19:01:14

标签: java regex

我知道人们之前会问这个问题,但是我找不到解决办法。

我正在尝试检查一个字符串是否与下一个模式匹配:大写字母或不是字母“x”,然后是任何数字(没有点或其他任何东西)。

4 个答案:

答案 0 :(得分:3)

你可能想要

[xX]\d

请注意,在字符串文字中,我们需要转义反斜杠:"[xX]\\d"

答案 1 :(得分:1)

您可以使用此正则表达式:

"(?i)^x\\d+$"
  1. (?i)用于忽略大小写匹配以匹配x或X
  2. \ d +用于匹配1位或多位[0-9]

答案 2 :(得分:1)

此正则表达式为[xX]\d。括号中的内容是您要匹配的字符列表。你想匹配大写或小写“X”,以便完成它。然后你想匹配任何数字。这就是\ d。的作用。 \ d表示“任何数字”。以下是在java代码中运行它的方法:

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        String s = "x9";
        System.out.println(s.matches("[xX]\\d"));
    }
}

注意String中有两个反斜杠。那是因为\是转义字符。在java中,您希望实际使用\符号并执行此操作,您必须通过键入\来转义\\符号。

答案 3 :(得分:0)

如果我理解你的要求:

(x|X)[0-9]+

这首先匹配“x”或“X”(|是或)。然后它匹配组[0-9]中的一个或多个字符,这些字符显然是数字。