Jak dopasować więcej niż jedną spację w wyrażeniu Java?Java Regex: Jak dopasować jeden lub więcej znaków spacji
Mam wyrażeń regularnych, które próbuję dopasować. Regex kończy się niepowodzeniem, gdy mam dwa lub więcej znaków spacji.
public static void main(String[] args) {
String pattern = "\\b(fruit)\\s+([^a]+\\w+)\\b"; //Match 'fruit' not followed by a word that begins with 'a'
String str = "fruit apple"; //One space character will not be matched
String str_fail = "fruit apple"; //Two space characters will be matched
System.out.println(preg_match(pattern,str)); //False (Thats what I want)
System.out.println(preg_match(pattern,str_fail)); //True (Regex fail)
}
public static boolean preg_match(String pattern,String subject) {
Pattern regex = Pattern.compile(pattern);
Matcher regexMatcher = regex.matcher(subject);
return regexMatcher.find();
}
'String $ pattern' =>' Wzór ciągu' w standardowych konwencjach kodowania Java. – assylias
Czy to jest ... składnia PHP w kodzie Java? – ean5533
Może być tak, że druga przestrzeń jest dopasowana przez [^ a] (spacja nie jest "a"). – erikxiv