java编程思想中的一个正则表达式

gchichafengyun 2013-11-20 07:19:16
题目描述:
试用正则表达式
 (?i)((^[aeiou])|(\s+[aeiou]))\w+?[aeiou]\b


匹配字符串
Arline ate apples and one orange while Anita hadn't any


我测出的结果是:


后面两个的匹配表示不能理解,正则表达式中的
\w+?
应该是勉强型啊,只能代表一个字符啊。。。
...全文
292 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
TOBEK 2013-12-12
  • 打赏
  • 举报
回复
其实这个\\w+?有点烟雾弹的意思,整个正则表达式关键在最后的[aeiou]\\b。在满足单词以aeiou之一结束前提下,单词中间使用勉强型去匹配没有意义。
gchichafengyun 2013-11-22
  • 打赏
  • 举报
回复
引用 9 楼 yy52113142011 的回复:
引用 8 楼 gchichafengyun 的回复:
引用 6 楼 yy52113142011 的回复:
[quote=引用 5 楼 gchichafengyun 的回复:] [quote=引用 4 楼 yy52113142011 的回复:] 匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
亲啊,我7楼的理解对不啊???[/quote]对啊[/quote]谢谢! 结贴!给分!
qq_wwwhj 2013-11-22
  • 打赏
  • 举报
回复
引用 8 楼 gchichafengyun 的回复:
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
[quote=引用 4 楼 yy52113142011 的回复:] 匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
亲啊,我7楼的理解对不啊???[/quote]对啊
gchichafengyun 2013-11-22
  • 打赏
  • 举报
回复
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
亲啊,我7楼的理解对不啊???
gchichafengyun 2013-11-20
  • 打赏
  • 举报
回复
引用 6 楼 yy52113142011 的回复:
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
最少的前提是要匹配正则表达式!你这句话感觉很受启发!可是我还有疑问,我之前的理解是\\w+?永远只能匹配一个字符,所以对于" orange"和" Anita"没法匹配正则后面的 [aeiou]\b ,所以这两个就根本匹配不上。。照你的这种理解,我这个思路压根儿就错了???
qq_wwwhj 2013-11-20
  • 打赏
  • 举报
回复
引用 5 楼 gchichafengyun 的回复:
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
最少的前提是要匹配正则表达式,只匹配一个字符的话,那后面[aeiou]\b就不用匹配了啊
gchichafengyun 2013-11-20
  • 打赏
  • 举报
回复
引用 4 楼 yy52113142011 的回复:
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
可是我看书上好像说\\w+? 这个是勉强型,匹配时选择最少的,那应该就匹配一个字符了嘛,不知道我这理解对不对
qq_wwwhj 2013-11-20
  • 打赏
  • 举报
回复
匹配一个字符不符合那个正则表达式啊,、w+?0个或者多个,后面还有[aeiou]\b,还要匹配这个的
jdgdf566 2013-11-20
  • 打赏
  • 举报
回复
gchichafengyun 2013-11-20
  • 打赏
  • 举报
回复
引用 1 楼 jdgdf566 的回复:
\w+?
改成
\\w+?
这个只是正则表达式的描述,在程序里写的时候,应该是这样的:
Pattern p=Pattern.compile("(?i)((^[aeiou])|(\\s+[aeiou]))\\w+?[aeiou]\\b");
jdgdf566 2013-11-20
  • 打赏
  • 举报
回复
\w+?
改成
\\w+?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧