Java 正则表达式匹配字符,然后匹配数字
我知道以前有人问过这个问题,但我找不到解决办法Java 正则表达式匹配字符,然后匹配数字,java,regex,Java,Regex,我知道以前有人问过这个问题,但我找不到解决办法 我正在尝试检查字符串是否与下一个模式匹配:大写或非字母“x”,然后是任意数字(无点或任何其他内容)。如果我了解您的要求: (x|X)[0-9]+ 第一个匹配“x”或“x”(|是或)。然后它匹配组[0-9]中的一个或多个字符,这些字符显然是数字。您可能需要 [xX]\d [xX]是与x或x匹配的 \d是匹配任何数字的 请注意,在字符串文本中,我们需要转义反斜杠:“[xX]\\d”您可以使用以下正则表达式: "(?i)^x\\d+$" (?i
我正在尝试检查字符串是否与下一个模式匹配:大写或非字母“x”,然后是任意数字(无点或任何其他内容)。如果我了解您的要求:
(x|X)[0-9]+
第一个匹配“x”或“x”(|是或)。然后它匹配组[0-9]中的一个或多个字符,这些字符显然是数字。您可能需要
[xX]\d
是与[xX]
或x
匹配的x
是匹配任何数字的\d
请注意,在字符串文本中,我们需要转义反斜杠:
“[xX]\\d”
您可以使用以下正则表达式:
"(?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中,如果你想实际使用\
符号,那么你必须通过键入\\
来避开\
符号。对不起,如果我的英语不是很好,希望你能理解,唯一需要澄清的是你所说的“任意数字”是什么意思。x542
有效吗?或者只有一个位数,比如x5
?但是这个正则表达式能确保这个“x34g”不能工作吗?@Gigalala是的。将s
更改为“x34g”,您会发现它不起作用。