检查字符串是否为JAVA的特定形式
假设我有一根绳子检查字符串是否为JAVA的特定形式,java,regex,string,compare,Java,Regex,String,Compare,假设我有一根绳子 String line = "Let x0 be {1,2,3,4}" 如何检查字符串是否写在“Let???be???”中 我试图用下面的代码,但我想你需要知道的长度???让它工作 matches = line.matches("Let \\d be \\d") 谢谢试试这个regex“让(\w+)成为(\S+)” \d仅匹配数字,缩写为[0-9],它不能匹配x0,也不能匹配“{,}”的任何字符,因此您可以匹配\S,这意味着非空白字符。由于您不知道长度,并且希望至少有一个
String line = "Let x0 be {1,2,3,4}"
如何检查字符串是否写在“Let???be???”中
我试图用下面的代码,但我想你需要知道的长度???让它工作
matches = line.matches("Let \\d be \\d")
谢谢试试这个regex“让(\w+)成为(\S+)”
\d
仅匹配数字,缩写为[0-9],它不能匹配x0
,也不能匹配“{,}”
的任何字符,因此您可以匹配\S
,这意味着非空白字符。由于您不知道长度,并且希望至少有一个长度,因此可以向\S添加“+
”,如\S+
。
因此,这一个可以满足您的期望:
Let\S+be.*
请定义您的语法,如果您想找到一个嵌入式编译器,其中有很多,您可以生成自己的编译器,请参见抱歉,我更新了问题,是否更清楚我正在尝试做什么?如果格式正确,请打印true,否则打印false
String line = "Let x0 be {1,2,3,4}";
Pattern p = Pattern.compile("Let (\w+) be (\S+)");
Matcher m = p.matcher(line);
int lastMatchPos = 0;
while (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
if(m.group(2).length> m.group(1).length){
//do something you want
}
}