-2

我知道以前有人问过这个问题,但我找不到解决方案。

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

4

4 回答 4

3

你可能想要

[xX]\d

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

于 2013-10-08T19:03:42.403 回答
1

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

"(?i)^x\\d+$"
  1. (?i)用于忽略大小写匹配以匹配 x 或 X
  2. \d+ 用于匹配 1 个或多个数字 [0-9]
于 2013-10-08T19:03:57.090 回答
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"));
    }
}

注意字符串中有两个反斜杠。那是因为\是一个转义字符。在 java 中,您想实际使用一个\符号,为此您必须\通过键入来转义该符号\\

于 2013-10-08T19:04:42.140 回答
0

如果我了解您的要求:

(x|X)[0-9]+

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

于 2013-10-08T19:02:14.957 回答