正则表达式 - 可选择匹配单词

时间:2011-08-14 16:39:53

标签: regex

如何制作可选地匹配字符串中的单词的正则表达式?例如,假设我有一个匹配句子的正则表达式:

I like vanilla ice cream.

但我希望“vanilla”这个词是可选的,所以同样的正则表达式也匹配

I like ice cream.

我该怎么办?我一直在用(香草)?但这似乎没有用。

3 个答案:

答案 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)

使用java regex tester

I like [vanilla]? ice cream

但不起作用?是0和1

I like [vanilla]* ice cream

有效吗