基础不提了,实际当中所遇到的问题需要解决才有意义。
1,匹配整个单词(单词边界):\bcat \b
2,匹配数字:\b\d+\b \b\d+?\b 改进后:\b\d++\b
3,匹配HTML:<html>(?>.*?<head>)(?>.*?<title>)(?>.*?</title>)(?>.*?</head>)(?>.*?<body[^>]*>)(?>.*?</body>).*?</html>
4,python常用写法:
reobj=re.compile("regex pattern")
if reobj.search(subject):
#successful
else:
#failed
5,查找多个单词,彼此之间可以是任意距离:\A(?=.*?\bword1\b)(?=.*?\bword2\b).*\Z
6,查找重复单词:\b([A-Z]+)\s+\1\b
7,删除重复的文本行:
方法1:先对文本排序然后删除相邻的重复行
^(.*)(?:(?:\r?\n|\r)\1))+$
方法2:在未排序的文件中保留每个重复行的最后一次出现
^([^\r\n]*)(?:\r?\n|\r)(?=.*^\1$)
方法3:在未排序的文件中保留每个重复行的第一次出现
^([^\r\n]*)$(.*?)(?:(?:\r?\n|\r)\1$)+
8,匹配包含某个单词的整行内容:^.*\bword\b.*$ 多个单词:^.*\b(one|two|three)\b.*$
9,匹配必须包含某几个单词的整行内容:^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).+$
10,匹配不包含某个单词的整行:^(?:(?!\bword\b).)*$
11,把重复的空白替换为单个空格:\s+
12,在文本中查找任意的十进制整数:\b[0-9]+\b