我知道以前有人问过这个问题,但我找不到解决方案。
我正在尝试检查字符串是否与下一个模式匹配:大写或非字母“x”,然后是任何数字(没有点或其他任何东西)。
您可以使用此正则表达式:
"(?i)^x\\d+$"
(?i)
用于忽略大小写匹配以匹配 x 或 X正则表达式是[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 中,您想实际使用一个\
符号,为此您必须\
通过键入来转义该符号\\
。
如果我了解您的要求:
(x|X)[0-9]+
这首先匹配“x”或“X”(| 是或)。然后它匹配组 [0-9] 中的 1 个或多个字符,这些字符显然是数字。