当前位置:首页 » 编程语言 » python汉字正则

python汉字正则

发布时间: 2023-01-12 23:41:34

1. python正则表达式中\w居然能匹配汉字,请问是怎么一回事

\w匹配的是能组成单词的字符,在python3 中re默认支持的是unicode字符集,当然也支持汉字
如果要让\w仅支持英文,加个re.A标志
print(re.findall(r"\w",s,re.A))
这样就不会匹配汉字了

2. python,用正则表达式匹配特定汉字

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '\' 。 例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。由于正则表达式和 \ 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。
在[]中
-长用来指定一个字符集,在这个字符集中的一个可以拿来匹配:[abc] [a-z]
-元字符在在字符集中不起作用
-在[]内用^表示补集,用来匹配不在区间范围内的字符
s=r'aba' 匹配abc
s=r't[io]p' 匹配tip或者top
s=r't[a-z0-9A-Z]'匹配t+0-9或者a-z或者A-Z
[abc]表示“a”或“b”或“c”
[0-9]表示0~9中任意一个数字,等价于[0123456789]
[\u4e00-\u9fa5]表示任意一个汉字
[^a1<]表示除“a”、“1”、“<”外的其它任意一个字符
[^a-z]表示除小写字母外的任意一个字符

3. python怎么用正则表达式提取中文

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

from:http://blog.aizhet.com/web/12078.html

4. python编程语言中的正则表达式求解

正则式:(.*?)<(/?w+)[^>]*>(?:([^<]*)(<.*>)?)?

  1. (.*?)

    这里的.*代表任意长度的字符,后面的?表明这是一个非贪婪匹配,()作用是捕获匹配的文本;

  2. <(/?w+)[^>]*>

    <先匹配一个“<”;

    (/?w+)“/?”将匹配0个或一个“/”,“w+”匹配1个以上的字母或数字或下划线或汉字;

    [^>]*中括号内将匹配除>以外的任何字符,*表示允许这样的字符出现0次或任意多次;

    >最后匹配一个“>”;

    这几个部分连起来看,将匹配任何的HTML头标签与尾标签,如<div>或</div>或<br />。

  3. (?:([^<]*)(<.*>)?)?

    (?:exp)?这个结构是匹配exp语句0次或1次,这里的exp就是([^<]*)(<.*>)?

  4. ([^<]*) 与2中类似,将匹配除<以外的任何字符0次或任意多次;

    (<.*>)? 匹配以<开头,以>结尾的任何字符串;


    所以最终的意思是,匹配连续两个HTML标签(头标签或尾标签)及其中间的内容。

5. python 正则匹配中文问题

list打印是这样的,这是python的系统行为,改变不了。
如果不想用循环,可以用 print(u"\n".join(items))

6. python正则匹配汉字

#python2使用如下即可:

#encoding:UTF-8
importre
importsys
reload(sys)
sys.setdefaultencoding('utf-8')

defextract_number(input):
match=re.search(u"[u4e00-u9fa5]+",input)
returnmatch.group()

if__name__=="__main__":
printextract_number(unicode("dss2第三季度建安大sdssd43fds",'utf8'))#python3使用如下:


#encoding:UTF-8
importre

defextract_number(input):
match=re.search("[u4e00-u9fa5]+",input)
returnmatch.group()

if__name__=="__main__":
print(extract_number("dss2第三季度建安大sdssd43fds"))

7. python怎么用正则表达式提取中文

1、字符串line='ufeffD0002044x01大数据x01数据分析x01技术x01工具x01应用 '
想提取出其中的“大数据”,“数据分析”,“技术”,“工具”,“应用”这些中文,用了正则表达式:
>>>pat2='x01(.*?)'
>>>rs=re.compile(pat2).findall(line)
>>>print(rs)
['','','','','']
显示的结果是空,请问如何才能正确的提出中文部分。

2、原文: 法规名称:'《中华人民共和国合同法》',Items:[{法条名称:'第五十二条'
匹配成: 《中华人民共和国合同法》第五十二条
(?<=法规名称:').*?(',Items:[{法条名称:').*?(?=') 请问这样匹配哪里错了?Python报sre_constants.error: unterminated character set at position 22

3、Python re正则匹配中文,其实非常简单,把中文的unicode字符串转换成utf-8格式就可以了,然后可以在re中随意调用
unicode中中文的编码为/u4e00-/u9fa5,因此正则表达式u”[u4e00-u9fa5]+”可以表示一个或者多个中文字符
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u''
>>> print s
中文:123456aa哈哈哈bbcc 。

8. 更强大的python正则表达式模块 -- regex

python内置的正则表达库re比较弱,而且似乎在好几年里都没太大的变化。
这里介绍这个python模块regex,实现了更多方便好用的功能。

比如: p{han} 可以匹配汉字, p{Latin} 可以匹配拉丁字母。相当简单,易记易用。

更多的介绍请直接看: https://pypi.python.org/pypi/regex

用pip 命令安装即可

regex的源码托管在这里 : https://bitbucket.org/mrabarnett/mrab-regex/

参考资料:
http://www.regular-expressions.info/unicode.html

2017-1-28 1:32:59 codegay

9. Python re函数 中文正则匹配

建议使用以下正则表达式:
(?<=>)[^a-zA-Z0-9_]+(?=<)

前面的 (?<=>) 和后面的 (?=<) ,使得匹配出现在> . . . < 之间;
[^a-zA-Z0-9_]+ 排除对英文数字下划线的匹配,可根据具体情况作变动。

热点内容
java的业务流程 发布:2025-07-14 02:25:23 浏览:351
linuxprocess 发布:2025-07-14 02:24:36 浏览:807
手机版服务器生存有什么好玩的服务 发布:2025-07-14 01:49:45 浏览:210
锐龙3代编程 发布:2025-07-14 01:48:22 浏览:968
配置管理需要会什么 发布:2025-07-14 01:35:35 浏览:373
去除头条中的缓存 发布:2025-07-14 01:27:38 浏览:784
php开启错误 发布:2025-07-14 01:16:49 浏览:999
esp数据库 发布:2025-07-14 01:16:44 浏览:981
python查找文件路径 发布:2025-07-14 01:16:03 浏览:515
phpapachetomcat 发布:2025-07-14 01:08:41 浏览:124