正则表达式语法在这里就不提及了,主要是熟悉一下python的api
import re; abcRegex = re.compile(“abc”); mo = abcRegex.search(“abc123”); print(mo.group()); |
这个例子太简单了, group方法会返回abc, 语法上也和javascript的正则差不多
分组的写法是
import re; abcRegex = re.compile(“(abc)(123)”); mo = abcRegex.search(“abc123abc”); print(mo.group(1)); print(mo.group(2)); |
输出是
abc 123 |
python的正则表达式默认是贪心模式
如果你要查找3个或者5个相同字符串,它会尽量匹配5个
hahaRegex = re.compile(“(ha){3,5}”); mo = hahaRegex.search(“hahahahaha”); print(mo.group()); |
上面的代码会给出
hahahahaha |
要改成非贪心模式的话需要在表达式末尾加一个?
hahaRegex = re.compile(“(ha){3,5}?”); mo = hahaRegex.search(“hahahahaha”); print(mo.group()); |
结果为
hahaha |
python还提供一种返回数组的findall方法
abcRegex = re.compile(“\d”); mo = abcRegex.findall(“a1b2c3d4”); print(mo); |
[‘1’, ‘2’, ‘3’, ‘4’] |
如果不想区分大小写的话可以使用 re.IGNORECASE 或者 re.I
abcRegex = re.compile(“B”,re.IGNORECASE); mo = abcRegex.findall(“a1b2c3d4”); print(mo); |
[‘b’] |
sub() 方法可以用来替换匹配的文本
abcRegex = re.compile(“B”,re.IGNORECASE); mo = abcRegex.sub(“B”,’abcd’); print(mo); |
aBcd |