pythonre中文
A. python的re,正则表达式,可以用中文么
解决了>>>
a='中文'>>>
a'\xd6\xd0\xce\xc4'>>>
import
re>>>
mytestre=re.compile('\xd6\xd0\xce\xc4')>>>
b='中文asdf223中文ss'>>>
mytestre.sub('zw',b)'zwasdf223zwss'>>>复制代码关键是要找到中文相应coding对应的编码,这里中文='\xd6\xd0\xce\xc4'所以,就用\xd6\xd0\xce\xc4代替中文就可以了,如果是其他编码,也用类似的方法找到编码的字符串就可以了,没测试过,应该是这样的。哈哈。:mrgreen:
B. python re模块中的re.U是干什么用的
意思就是把\w \W \s \S等这些元字符按照 Unicode 的标准来考虑。举个例子
pattern = re.compile(ur"a\s+b", re.U)
m = pattern.findall(u"dsadadsada\u3000b") # 匹配成功
pattern = re.compile(ur"a\s+b")
m = pattern.findall(u"dsadadsada\u3000b") # 匹配失败
\u3000是中文下的unicode空格符,如果不加 re.U \s指认 ascii 中的空白符。
ab 中间那个就是中文空格,可以用来在贴吧里缩进代码噢。
缩进
C. 如何用正则表达式提取字符串中的中英文
Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc
>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>
>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>
>>> newpat='这里是中文内容'.decode("utf8")
>>> news=re.sub(pat,newpat,s)
>>> print news
这里是中文内容:123456aa哈哈哈bbcc
D. python正则表达式re.findall(r"\b\w+\b", s)中的r是什么意思
在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '' 。 例如, 在raw string中,是两个字符,和n, 而不会转意为换行符。由于正则表达式和 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。
例:r" ”
作用:声明后面的字符串是普通字符串
特殊字符串中含有:转义字符 什么什么的
用途:一般用在 正则表达式、文件绝对地址
1,正则表达式:
这样就不用专门的去处理引号之中的特殊字符了
E. python re sub 怎样替换EXCEL中的中文字符和空格
df 不是字符串,sub函数 第三个参数 是字符串
F. python3 re模块怎么抓取中文类型
Python的re模块里没有直接匹配中文的属性或者方法。
不过可以用re.findall+()来匹配,但是如果数据里面有中英文,那么就得再次匹配了。
例:
test = '<html><head>网络</head></html>'
cont = re.findall(r'<ht.*?head>(.*?)</hea',test)
print(cont)
G. python re 正则匹配某类字符前的所有字符(不包括该类字符)
首先,“匹配除2012这个字符串以外的任意字符?”语义不明,你是想将其从原字符串中删除还是要匹配2012以外的年份?
姑且认为你的意思是后者,也即在一个特定模式里排除某些匹配的实例。
方法一、先预处理,将要匹配的字符串里的2012替换成不可能出现的字符串,然后再进行匹配处理,最后再将其替换回2012。
方法二、使用不匹配的前向断言 (?! ...):
import re
s = '....<b>0033<b> <b>1033<b> <b>2012<b> <b>2033<b> <b>2043<b> <b>3033<b>.....'
p = re.compile('<b>(?!2012)[0-9]{4}<b>')
for m in re.finditer(p, s):
print m.group()
可以匹配出
<b>0033<b>
<b>1033<b>
<b>2033<b>
<b>2043<b>
<b>3033<b>
而没有'<b>2012<b>'
H. python如何安装re库
re库是Python关于正则表达式的一个内置模块,使用时无需下载,直接import即可。我们首先来看看re.py自己头部的注释是如何描述自己的:
这个模块提供与Perl语言中类似的正则表达式匹配操作,支持bytes和unicode两种格式的字符串,处理的字符串可以包含空字符以及超出ASCII码范围的字符(比如中文字符)。
正则表达式中既有'A'、'a'这种就代表自身的一般字符,又有一些具有特定含义的特殊字符,如|、(等。特殊字符既可以作为一个单纯的值表示它自身,也可以影响它周边1的正则表达式的解释。
re库中还包含一些特殊的字符序列,由\和一个字符组成的特殊序列在下表列出,如果\之后的字符不在下列表格中,正则表达式将会匹配字符本身,如\c匹配的就是字符c本身。我们发现如果 \小写字母 代表了某一含义,那么对应的 \大写字母 常常代表它的补集。
I. Python正则表达式中re.M 是什么意思
Python正则表达式中re.M的意思是:多行匹配,影响 ^ 和 $。
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
re.I:使匹配对大小写不敏感。
re.L:做本地化识别(locale-aware)匹配。
re.S:使 . 匹配包括换行在内的所有字符。
re.U:根据Unicode字符集解析字符。这个标志影响 w, W, , B。
re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
(9)pythonre中文扩展阅读
正则表达式的模式有I、L、M、S、X、U六种模式:
1、I (IGNORECASE) , 忽略大小写的匹配模式。
2、L (LOCALE),字符集本地化。
使预定字符类 w W B s S 取决于当前区域设定,比如在转义符w,在英文环境下,它代表[a-zA-Z0-9_],即所以英文字符和数字。如果在一个法语环境下使用,缺省设置下,不能匹配"é" 或 ""。加上这L选项和就可以匹配了,不常用。
3、M (MULTILINE),多行模式。
改变 ^ 和 $ 的行为,^匹配开始位置,这种模式下匹配每一行的开始,$匹配结束位置,这种模式下匹配每一行的结束。
4、S (DOTALL),点任意匹配模式。
此模式下.可匹配任何字符,包括换行符。
5、X (VERBOSE),冗余模式。
这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释,方便理解。
6、U (UNICODE),unicode定义模式。
使预定字符类 w W B s S d D 取决于unicode定义的字符属性。