求个正则表达式解答.

JJ___JJ 2010-08-31 01:13:35
两种情况:

https://www.blogger.com/comment.g?blogID=1893219388343041757&postID=6731896415743428482
http://www.blogger.com/comment-iframe.g?blogID=19040294&postID=114212517889629875



<a href='https://www.blogger.com/comment.g?blogID=6730451592544782836&postID=3082148969169101262' onclick=''>Post a Comment</a>


我想从链接中拿到URL, 自己写正则表达式, 老是获取不到(上面两种情况都要捕获到).

String PatternStr1 = "^(http)(s)?(://www.blogger.com/comment)(-iframe)?(.g?blogID=)[\\d]+(&postID=)[\\d]+$";


小弟对正则表达式不熟悉, 可能会有低级的错误, 望高手不吝赐教, 谢谢.
...全文
59 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JJ___JJ 2010-08-31
  • 打赏
  • 举报
回复
再次感谢Tassdars这位大哥...
Tassdars 2010-08-31
  • 打赏
  • 举报
回复
一般来说,加上^和$是用来验证整个字符串是否匹配某个正则表达式,主要用于验证字符串格式,如果用于查找某个字符串中匹配正则表达式的子字符串,是不会加^和$的,至少不会一起加,当然,有一种特殊情况就是正则表达式使用多行模式的时候,^和$可以匹配行头和行尾,这时候也可以用^和$来进行查找。
JJ___JJ 2010-08-31
  • 打赏
  • 举报
回复
在问个问题,

我用这个
"^https?://www\\.blogger\\.com/comment(-iframe)?\\.g\\?blogID=[\\d]+&postID=[\\d]+$"
可以匹配
https://www.blogger.com/comment.g?blogID=1893219388343041757&postID=6731896415743428482

但是一旦去整个文件里就捕获不到了.
去掉开头^和结尾$的约束就可以了
"https?://www\\.blogger\\.com/comment(-iframe)?\\.g\\?blogID=[\\d]+&postID=[\\d]+"
看来我对开头^与结尾$还不是很理解, 能不能说说.
匹配下面的语句:
<a href='https://www.blogger.com/comment.g?blogID=6730451592544782836&postID=3082148969169101262' onclick=''>Post a Comment</a>




dingkui 2010-08-31
  • 打赏
  • 举报
回复
从链接中拿到URL是什么意思?
如果从
<a href='https://www.blogger.com/comment.g?blogID=6730451592544782836&postID=3082148969169101262' onclick=''>Post a Comment</a>

中匹配 https://www.blogger.com/comment.g?blogID=6730451592544782836&postID=3082148969169101262
可以用 ['"]http.*['"]匹配到

如果是从
https://www.blogger.com/comment.g?blogID=6730451592544782836&postID=3082148969169101262
中匹配 https://www.blogger.com/comment.g
可以用 ^(http.*)\\?
JJ___JJ 2010-08-31
  • 打赏
  • 举报
回复
呵, 非常感谢你, Tassdars....
我再去试试.
Tassdars 2010-08-31
  • 打赏
  • 举报
回复
"^https?://www\\.blogger\\.com/comment(-iframe)?\\.g\\?blogID=[\\d]+&postID=[\\d]+$"


楼主,要注意转义,你不能匹配的根本原因是“?blogID”这个问号没有转义,虽然前面的N个“.”你都没转义,但影响不大,而且括号不用打这么多的,最后感慨一下楼主这么晚了还在等。
JJ___JJ 2010-08-31
  • 打赏
  • 举报
回复
由于要从很多很多的字符串捕获到这个链接, 所以, 正则表达式的匹配要很严格...

大虾, 现身吧...

62,614

社区成员

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

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