如何制作可选地匹配字符串中的单词的正则表达式?例如,假设我有一个匹配句子的正则表达式:
I like vanilla ice cream.
但我希望“vanilla”这个词是可选的,所以同样的正则表达式也匹配
I like ice cream.
我该怎么办?我一直在用(香草)?但这似乎没有用。
答案 0 :(得分:3)
单词vanilla
不仅需要是可选的,而且还后面的空格,即(vanilla )?
:
String s1 = "I like vanilla icecream";
String s2 = "I like icecream";
Pattern p = Pattern.compile("I like (vanilla )?icecream");
System.out.println(p.matcher(s1).matches()); // true
System.out.println(p.matcher(s2).matches()); // true
答案 1 :(得分:1)
试试这个
I like (vanilla )?ice cream
你可能忘记了“香草”之后的额外空间。
答案 2 :(得分:0)