Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查字符串是否为JAVA的特定形式_Java_Regex_String_Compare - Fatal编程技术网

检查字符串是否为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
   }
}