正则表达式就像加减乘除四则运算符一样,可以跨语言使用。编程语言只要涉及字符处理,都会引入功能强大的正则表达式。可以说正则表达式本身就是一套应用于字符串环境的小型编程语言。
举一个小栗子来讲一下Python中正则表达式的用法。
>>> import re
>>> str="H33+copyright+1"
>>> re.sub(r"\w\d{1,2}(?=\+)","credits",str)
'credits+copyright+1'
在Python中re模块提供了几个函数来使用正则表达式,上面用到的sub方法便是用来替换匹配到的字符串。我们在str中搜索符合正则表达式的字符或字符串,并将之替换成"credits"。
r"\w\d{1,2}(?=+)"是我们用来搜索"+"前面"H33"而编写的正则表达式。\w代表一个字母,\d代表数字,{1,2}表示前面的数字有1到2个,(?=+)表示我们所要匹配的字符在"+"前面。
>>> str="H33+copyright+1"
>>> re.sub(r"[A-Z]\d{1,2}(?=\+)","credits",str)
'credits+copyright+1'
>>> str="h33+h33+copyright+1"
>>> re.sub(r"[A-Z]\d{1,2}(?=\+)","credits",str)
'h33+h33+copyright+1'
如果想更进一步限定"H33"必须是大写字母,可以采用如上的形式。\w范围比较大,代表[a-zA-Z0-9],若想要精确匹配可以用更精准的正则表达式。感觉又找到可以写的内容了:-)
网友评论