1)题目:写出正则表达式,从一个字符串中提取链接地址。比如下面字符串中
"IT面试题博客中包含很多 <a href=http://hi.baidu.com/mianshiti/blog/category/微软面试题> 微软面试题 </a> " 则需要提取的地址为 " http://hi.baidu.com/mianshiti/blog/category/微软面试题 " 我自己写的答案是:http(s)?://([\w]+\.)+\w+(/\w+)*
在Regex Tester测试通过了,后边看了作者提供的答案,
python中:
import re
p = re.compile('<a(?: [^>]*)+href=([^ >]*)(?: [^>]*)*>')
content = "IT面试题博客中包含很多 <a href=http://hi.baidu.com/mianshiti/blog/category/微软面试题> 微软面试题 </a> "
p.search(content).groups() 我看不懂,但只拿表达式<a(?: [^>]*)+href=([^ >]*)(?: [^>]*)*>
在Regex Tester运行的结果是包含了<a href>。这个真不知道是python特有的还是表达式漏了什么。
2)题目:验证电子邮箱地址。
\w+([-.]\w+)*@\w+([-.]\w+)*
"\w+”所代表的就是任何字母与数字所组成的非空字符串(non-null string)。
(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*;)* \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 在《精通正则表达式-基于.NET/ASP/PHP...》沙金编著
他的正则表达式:\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
感觉我写的最好记忆,这些都能通过的,我的@前后表达式一样的
在网易注册邮箱时,@符号前的内容有限制:
6~18个字符,包括字母、数字、下划线,以字母开头,字母或数字结尾
这样 \b[a-zA-Z][0-9a-zA-Z_]{4,16}[0-9a-zA-Z]\b
具体可以参考这个pdf
|
|