正则表达式为:(?i)((^[aeiou])|(\s+[aeiou]))\w+?[aeiou]\b
问题是找出字符串arline ate eight apples and one orange while Anita hadn't any中符合上述正则表达式的匹配项。
用Java编程求解的结果是:
Match:arline
Match: ate
Match: one
Match: orange
Match: Anita
我不明白答案第一项也就是arline为什么匹配,arline前面又没有空格,它如何能匹配(^[aeiou])|(\s+[aeiou])呢?
问题是找出字符串arline ate eight apples and one orange while Anita hadn't any中符合上述正则表达式的匹配项。
用Java编程求解的结果是:
Match:arline
Match: ate
Match: one
Match: orange
Match: Anita
我不明白答案第一项也就是arline为什么匹配,arline前面又没有空格,它如何能匹配(^[aeiou])|(\s+[aeiou])呢?
==========================================
^[aeiou] 匹配字符串开头是aeiou的其中一个字母
\s+[aeiou] 匹配一个或多个空格后面跟着aeiou的其中一个字母
| [或者]操作符
(^[aeiou])|(\s+[aeiou]) 匹配两种情况的一种
"(?i)\\b(([^aeiou])|(\\s+[aeiou]))\\w+?[aeiou]\\b"
ate
one
orange
while
Anita