那些有用的正则表达式

1. HTML 标签匹

HTML不是有特别严格编程要求的,因此在匹配时会遇到很多特殊情况需要特殊处理,这里仅仅给出一般化的解决方法: 
【文本】ddd< input name=dir value=”>”>ddd 
【解析】显然,文本中非转义字符>与闭尖括号的提取是难点,不能向往常一样[^>]来提取。 
【表达式】 <(“[^”]*”|’[^’]*’|[^’”>])*> 
“[^”]*”表示提取双括号的内容 
‘[^’]*’表示提取单括号的内容 
    [^’”>] 表示提取其他内容 
【注意】也许你用<.*>也能匹配上述文本,但是实际情况时当你遇到的是ddd< input name=dir value=”>”>ddd< / input>时候,它将匹配全部。

2. 匹配Link
【文本】< a href=”http://www.youkuaiyun.com”>my blog < / a > 
【解析】要获取双引号或单引号中间的地址,但不是所有双引号的内容都是Link,“href=”很重要 
【表达式】href\s*=\s*(“[^”]*”|”[^’]*”|[^”’>]+)

三、真实世界中提取URL
【文本】read the comments at http://www.baidu.com/ask_tik/index.html you can find … 
【解析】URL类型包括:māilto, http, https, ftp 
但是有时候文本中并不包含上诉开头,而是直接以www.baidu.com出现。 
【表达式1】 
(ftp|https?)://[-\w]+(.\w[-\w]*)+| 
(?:[a-z0-9]( ? :[-a-z0-9][a-z0-9])?\.)+ 
(?:com\b 
|edu\b 
|gov\b 
|org\b 
|net\b 
|[a-z][a-z]\b) 


[^.!,?:”’<>()[]{}\s\x7F-\xFF]* 
(?:[.!,?]+[^.!.?;”’<>()[]{}\s\x7F-\xFF])* 
)? 
【不包含特殊符号(?!=)的URL的表达式】https?://\w+(.\w+)+(\/\w+)*(.\w+)* 
【包含特殊符号(?!=)的URL简化表达式】 
https?://\w+(.\w*)+(?:\.com)* 
(\/[^”’<>()[]{}\s\x7F-\xFF]*)*

 

转载于:https://my.oschina.net/wellsoschina/blog/1816222

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值