我想在java中的字符串中找到模式。下面是代码写为 -java查找()总是返回true
String line = "10011011001;0110,1001,1001,0,10,11";
String regex ="[A-Za-z]?"; //[A-Za-z2-9\W]?
//create a pattern obj
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(line);
boolean a = m.find();
System.out.println("The value of a is::"+a +" asdsd "+m.group(0));
我期待布尔值为false,而是它总是返回为true。任何输入或想法,我错了。?
i tihnk?意味着零个或更多以前的charachter? – Biscuit128
正如答案中提到的那样:你应用'?'量词,意思是“零或1”,前面的原子;因此,正则表达式总是匹配。它理论上可以经历一个无限循环,但是因为Java的正则表达式引擎足够聪明,所以如果正则表达式匹配是空字符串,就会右移1。 – fge