python 中 re.sub 和 re.compile 是啥意思呀?跪求大神解释。

作者&投稿:段干爽 (若有异议请与网页底部的电邮联系)
Python re模块成re.compile(r'xxx');这样的。这个 r是啥意思?还有的写url或者其他的,各是啥意思?~

Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。

在中括号最后的-就表示连字符'-',因此这个匹配单词字符,连字符,单引号组成的一到多个字符,比如
13
'abcd_'
在python3以上版本中,默认是启用UNICODE,\w还可以匹配汉字,python2用re.U也可以

在python中re是一个常用的模块,主要是通过正则表达式进行字符串处理。它的速度相对自己用 find, replace, split来说,通常更快。当然功能更强大。


正则表达式也是一种语言,所以如果通过re.compile把它编译成对象,会速度快很多。所以我们经常看到这样的语句

exp = re.compile("\S+")
m = exp.search(bigtext)
print m.group(0)

这段话等同于

m = re.search("\S+", bigtext)
print m.group(0)

re.sub则相当于字符串操作中的replace,比如

sometext = re.sub("(?isu)
", "
", sometext)

上面这句话是将回车换行,变成换行。这是为了将windows下的文本文件移到linux下,防止某些软件不兼容所做的处理。


简单的说re.sub是做字符串替换的, re.compile是将正则表达式编译成一个对象,加快速度,并重复使用。




城步苗族自治县15920687852: python 中 re.sub 和 re.compile 是啥意思呀?跪求大神解释. -
绪文注射: 在python中re是一个常用的模块,主要是通过正则表达式进行字符串处理.它的速度相对自己用 find, replace, split来说,通常更快.当然功能更强大. 正则表达式也是一种语言,所以如果通过re.compile把它编译成对象,会速度快很多.所以我...

城步苗族自治县15920687852: python如何使用re模块的sub函数实现把一串字母或者数字组合的字符串,全部替换成* -
绪文注射: 改成 print re.sub("\w","*",_string3) 另外r作用是取消特殊意思 比如r"\a"则匹配\a的

城步苗族自治县15920687852: python re.I问题 >>> re.sub('asdf','ITEEDU',s,re.I) 'ITEEDUITEEDUasdf' 只能匹配两个 -
绪文注射: 因为re.sub有五个参数:re.sub(pattern, repl, string, count=0, flags=0) 你在第四个参数写re.I相当于把count设成了2,所以只替换2次.应该写成:re.sub('asdf','ITEEDU',s,0,re.I) 或者 re.sub('asdf','ITEEDU',s,flags=re.I) # 推荐

城步苗族自治县15920687852: python 正则表达式 捕获 -
绪文注射: 就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地...

城步苗族自治县15920687852: python匹配双引号 -
绪文注射: 说明一下,re.match是从字符串开头匹配的,使用re.search才能从任意位置匹配 而且Python中字符串不能被修改,re.sub并没修改字符串本身,而是返回一个新的字符串,所以即使if语句执行了也不会有任何效果,可以使用下面的代码去掉...

城步苗族自治县15920687852: python 查找字符串并将其替换 -
绪文注射: import re f1=open('J:/wenjian/1/1.txt','r').read()#把整个文件读进来作为整个字符串 f1 = re.sub('abcdef','123456',f1)#替换所有符合的情况 f_w=open('J:/wenjian/1/replace_1.txt','wb')#新建一个文件,把替换后的内容写进去 f_w.write(f1) f_w.close()

城步苗族自治县15920687852: python中如何对多个字符快速替换 -
绪文注射: python中快速进行多个字符替换的方法小结先给出结论:要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高; 如果要替换的字符数量较多,则推荐在 for 循环中调用 replace() 进行替换.可行的方法:1. 链式replace()?1string.replace().replace()1.x 在for循环中调用replace() 「在要替换的字符较多时」2. 使用string.maketrans3. 先 re.compile 然后 re.sub

城步苗族自治县15920687852: python中如何将一个英文句子中的每个单词的首字母由小写转换为大写 -
绪文注射:[答案] >>> import re >>> s='hello world' >>> s=re.sub(r"\w+",lambda match:match.group(0).capitalize(),s)

城步苗族自治县15920687852: python中的语句 prefix = re.sub(r'\.[^/]*$',' ',imagefile) 解释 -
绪文注射: 用空格替换.或者.///////////(0或者任意多个/)

城步苗族自治县15920687852: 如何用python的re.sub( )方法进行“多处”替换 -
绪文注射: print re.sub('(?<=\(.)=','x=x',s)这个只有一个字母才好用,不确定边界就不好用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网