python的re模块说明:
https://docs.python.org/zh-cn/3/library/re.html
一些常见的正则表达式写法(邮箱、手机号、密码、身份证):
https://zhuanlan.zhihu.com/p/338826624
非常有用!
powershellin_str = """ Name: 10.10.90.86:9866 (hadoop001) DFS Used: 149719834624 dgf Name: 10.10.90.87:9866 (hadoop002) DFS Used: 1497198231234624 dgfg Name: 10.10.90.88:9866 (hadoop003) DFS Used: 14971981323134624 gfdg """ import re pattern1 = re.compile(r"Name: [0-9]+.[0-9]+.[0-9]+.[0-9]+") dalllist1 = re.findall(pattern1, in_str) dalllist1 = list(map(lambda x: x[6:], dalllist1)) pattern2 = re.compile(r"DFS Used: [0-9]+") dalllist2 = re.findall(pattern2, in_str) dalllist2 = list(map(lambda x: x[14:], dalllist2)) for i in zip(dalllist1, dalllist2): print(i)
感觉基本没啥用。
powershellin_str = """ Name: 10.10.90.86:9866 (hadoop001) DFS Used: 149719834624 dgf Name: 10.10.90.87:9866 (hadoop002) DFS Used: 1497198231234624 dgfg Name: 10.10.90.88:9866 (hadoop003) DFS Used: 14971981323134624 gfdg """ import re pattern1 = re.compile(r"Name: [0-9]+.[0-9]+.[0-9]+.[0-9]+") dalllist1 = re.search(pattern1, in_str) print(dalllist1.group())
用这个来匹配密码很好,用户设置密码的时候必须有数字和大小写之类的。
powershellimport re while True: pwd = input("input your password\r\n") if re.match(re.compile("^[a-z]{8,16}$"), pwd) == None: print("no pass") else: print("password is ok")
密码强度:https://www.huaweicloud.com/articles/e43ea3c29dfbebc830af0e0b69b71ce3.html
powershellimport re text = """Ross McFluff: 834.345.1254 155 Elm Street ... ... Ronald Heathmore: 892.345.3428 436 Finley Avenue ... Frank Burger: 925.541.7625 662 South Dogwood Way ... ... ... Heather Albrecht: 548.326.4584 919 Park Place""" entries = re.split("\n+", text) print([re.split(":? ", entry, 3) for entry in entries])
[]
匹配方括号里的所有字符的集合。集合set的意味在里面。
比如[34]
就是匹配3或者匹配4。
比如[A-Za-z]
就是匹配所有的大写字母或者小写字母。
比如[0-9]
就是匹配所有的数字。
^
如果放到 [ ] 里面,就表示这个集合里能匹配的东西都不是想匹配的。
比如[^heo]
就表示匹配除了这三个字母集合外的所有字符集合。
如果放到 [ ] 外面,就表示匹配一个行开始。
比如^[heo]
就表示匹配某一个新行,新行以三个字母的某一个字母开头。
要匹配 ^ 字符本身,请使用 \^
。
$
匹配行结尾。这符号很特殊。是一个零长度字符的匹配。
.
匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.
。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!