我知道人们之前会问这个问题,但是我找不到解决办法。
我正在尝试检查一个字符串是否与下一个模式匹配:大写字母或不是字母“x”,然后是任何数字(没有点或其他任何东西)。
答案 0 :(得分:3)
你可能想要
[xX]\d
[xX]
是与x
或X
匹配的character class。\d
是pre-defined character class,匹配任何数字。请注意,在字符串文字中,我们需要转义反斜杠:"[xX]\\d"
。
答案 1 :(得分:1)
您可以使用此正则表达式:
"(?i)^x\\d+$"
(?i)
用于忽略大小写匹配以匹配x或X 答案 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]中的一个或多个字符,这些字符显然是数字。