A. python3.11如何将帮助文件调为中文
python变成中文版的实现方法如下:
首先下载pycharm汉化包;
然后将“resources_en.jar”文件更名为“resources_cn.jar”;
最后将“resources_cn.jar”文件复制回lib文件夹内即可。
PS:建议不要使用汉化版,会导致一些小问题,例如设置界面显示不完整等。
B. 谁有python 中文api帮助文档chm格式的啊
Python只有txt、pdf、epub、html款,没有chm款。
在此处可以在线查看Python文档:Python 文档(中文)
在此处可以下载txt、pdf、epub、html的Python 3.8.5文档:Python 3.8.5 文档下载
C. 如何python提取txt文档里面全部的中文和中文符号,并且保存为新的txt文档
用beautifulsoup处理啊,去除英文和符号就是中文啦
importre
zhongwen=re.sub(r'[w<>/,=:"']','',text')
D. 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:
E. python-docx官方文档中文
没有找到。
第一个:
http://python-docx.readthedocs.io/en/latest/api/table.html#id1
和http://python-docx.readthedocs.io/en/latest/api/document.html#id1
有tables返回。
第二个:
用re来解决,\d{4}\D\d{1,2}\D\d{1,2}\D ,这些匹配到的就是日期,替换成你要的。
F. python中re库的常见用法
. 匹配除换行符外的任意字符
\d 匹配数字
\D 匹配非数字
\w 匹配数字字母下划线,支持中文
\W 小写w的反集
[abc] 匹配abc中任意一个
[a-f] 匹配字母a到f中的任意一个
x|y 匹配x或者y
^ 匹配字符串的开头
$ 匹配字符串的结尾
{3,5} 匹配次数,最少3个,最多5个
{3,} 至少匹配3次
* 匹配前一个字符,0次或多次
+ 匹配前一个字符,1次或多次
? 当前面不是数量表达式时,代表匹配0次或1次
举个栗子:
findall()函数的作用是匹配所有符合条件字符串,并以列表形式返回
由于.是匹配除换行符外的所有字符,{3,5} 匹配次数,最少3个,最多5个,在默认的贪婪模式下会匹配最多的字符,所以在列表中,字母a开头的字符串后面都跟了5个字符。
可以看到在非贪婪模式下,列表中的每一项都匹配最少的字符数。
从前往后,匹配到符合条件的最短的每一个字符串
边界字符:
^ 限定开头
$ 限定结尾
匹配分组:
() 提取出来的只有括号里匹配到的部分
上文中已经用到这个方法了,返回匹配到的字符串行表,如果没有匹配到的内容,则返回空列表。
flags参数是可以省略的,不省略时代表具有其他特殊的功能,如忽略大小写,忽略换行符等,re.S代表匹配时忽略换行符
re.search()和re.findall()的参数是一样的,只是返回结果不同,如果匹配到了,就返回该结果的正则表达式对象;如果没有匹配到,则返回None
使用re.search()返回匹配到的第一个字符串的正则表达式对象,找到了就会停止匹配。因此这个函数比较适合在一个大文本中找第一个出现的字符串。
若想让这个字符串展示出来,还需要借助group()函数。
举个栗子:
这个函数的作用是将正则表达式编译为一个正则表达式对象,如果要多次使用这个正则表达式的话,可以先编译,然后复用,使程序更高效一些,对这个对象继续使用.match(string)就可以显示匹配到的正则表达式对象,后续如果想要获取具体内容的话,和上面是一眼国的,直接使用group(0)就可以啦。
如果不考虑复用的话,和re.mach(pattern, string)的效果是一样的。
从运行结果也可以看出,re.match()和re.search()的区别,虽然二者都会返回匹配到的正则表达式对象,但是re.match()是从字符串的最开始位置开始匹配的,如果最开始的字符不匹配则会直接返回None;而re.search()则会一直往后找,直到找到第一个符合条件的字符串。
re.sub()函数用于替换字符串中的匹配项
举个栗子:
将所有数字替换为了一个空格。
G. Python之re模块
re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,
而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。
1、字符
2、字符集
3、量词
贪婪模式:总是尝试匹配尽可能多的字符
非贪婪则相反,总是尝试匹配尽可能少的字符。
{0,} 匹配前一个字符 0 或多次,等同于 * 元字符
{+,} 匹配前一个字符 1 次或无限次,等同于 + 元字符
{0,1 }匹配前一个字符 0 次或 1 次,等同于 ? 元字符
如果 () 后面跟的是特殊元字符如 (adc)* 那么*控制的前导字符就是 () 里的整体内容,不再是前导一个字符
4、特殊分组用法表:只对正则函数返回对象的有用
5、断言
从断言的表达形式可以看出,它用的就是分组符号,只不过开头都加了一个问号,这个问号就是在说这是一个非捕获组,这个组没有编号,不能用来后向引用,只能当做断言。
匹配 <title>xxx</title> 中 xxx : (?<=<title>).*(?=</title>)
自己理解就是:
5、例子
(1)非
^(?!.*200).*$ ,只匹配200
^(?!.*[200|400]).*$ ,只匹配200和400
[^a-z] 反取,不含a-z字母的
(2) u4e00-u9fa5 中文
(3) r"([u4e00-u9fa5]s?[u4e00-u9fa5]+)" # 小 明 匹配这种单字中间有空格的
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用
match 尝试从字符串的 起始位置 匹配一个模式,如果不是起始位置匹配成功的话,返回none。
search 扫描 整个字符串 并返回 第一个成功 的匹配。
re.match与re.search的区别:
正则表达式替换函数
替换匹配成功的指定位置字符串,并且返回替换次数,可以用两个变量分别接受
(2) 两个字符以上切割,放在 [ ] 中(不保留分隔符):
(3) 使用 ( ) 捕获分组(保留分割符):
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 ,findall 匹配所有。
用法:
注意1:一旦匹配成,再次匹配,是从前一次匹配成功的,后面一位开始的,也可以理解为匹配成功的字符串,不在参与下次匹配
注意2:如果没写匹配规则,也就是空规则,返回的是一个比原始字符串多一位的,空字符串行表
注意3:正则匹配到空字符的情况,如果规则里只有一个组,而组后面是 * 就表示组里的内容可以是 0 个或者多过,这样组里就有了两个意思:
一个意思是匹配组里的内容,
二个意思是匹配组里 0 内容(即是空白)
所以尽量避免用 * 否则会有可能匹配出空字符串
正则表达式,返回类型为表达式对象的
如:<_sre.SRE_Match object; span=(6, 7), match='a'>
返回对象的,需要用正则方法取字符串,
H. python3 re模块怎么抓取中文类型
Python的re模块里没有直接匹配中文的属性或者方法。
不过可以用re.findall+()来匹配,但是如果数据里面有中英文,那么就得再次匹配了。
例:
test = '<html><head>网络</head></html>'
cont = re.findall(r'<ht.*?head>(.*?)</hea',test)
print(cont)
I. Python 标准库模块 - re
正则表达式引擎对正则表达式文本进行编译生成正则表达式对象,再由正则表达式对象对目标文本进行匹配,后返回匹配结果。
正则表达式中一共包含 2 中字符: 普通字符 、 元字符
匹配单个字符的元字符及其含义:
匹配重复性的元字符及其含义:
匹配位置的元字符及其含义:
分组匹配的元字符及其含义:
表示或运算的元字符:
转义元字符:
在 Python 中使用正则表达式,我们需要借助 re 模块提供的强大 API,下面我们就来学习几个 re 模块常用的接口吧~
参数说明: findall("正则表达式", "要匹配的字符串", flags=标志1|标志2|...)
返回值:以列表形式返回匹配到的字符串。
下面,我们用 findall 返回 Python 之禅中首尾用到的反义词:
运行结果:
当正则表达式中含有一个以上分组时, findall 返回的列表由元组构成,元组中包含每个分组匹配到的内容。如果只有一个分组,则返回由该分组匹配到的内容组所构成的列表:
match 函数返回的结果是一个 SRE_Match 对象:
SRE_Match 具有很多的属性,比如 .string 属性可以方便我们我获取在匹配时输入的字符串:
属性 .re 可以获取匹配时使用的编译后的正则表达式模式:
由于默认使用了 re.UNICODE ,所以我们这里的 w 可以匹配中文字符。
属性 .regs 则以列表的形式返回正则表达式匹配到的内容以及各个分组陪陪到的内容,不过请注意,返回的都是索引的形式:
可以使用序列切片来看一下我们的正则表达式及其中的两个分组所匹配到的内容:
SRE_Match 对象也提供了非常多好用的方法,比如 groups 可以获取各个分组匹配到的内容:
group 则可以灵活地获取正则表达式或对应分组匹配到的内容:
如果使用的正则表达式定义了分组的名称, group 还可以通过名称获取相应分组匹配的内容:
在定义了分组的名称之后,还可以方便地使用 groupdict 以字典的形式返回所有分组匹配的结果:
最后需要注意的是, match 从字符串的开头开始匹配,如果开头不符合要求,则直接返回 None 。
与 match 匹配开头不同, search 匹配第一个符合规则的字符串,未成功则返回 None 。参数: re.search(pattern, string, flags=0) ;返回值同 match 。
在介绍 match 的使用时,最后一个例子,由于我们在字符串前面添加了 'PYTHON' 导致 match 使用原来的正则表达式无法匹配,返回 None 。此时,使用 search 就可以迎刃而解啦:
运行结果:
小结:
参数: re.split(pattern, string, maxsplit=0, flags=0) , split 功能非常强大,以正则表达式匹配到的标志来分隔字符串,比如下面这样一个混乱的字符串,我们要提取其中所有的数字:
下面,我们就来详细介绍一下 split 的用法。
首先,是以单字符切割:
以分号切割时,共产生了 4 个子字符串,放在列表中返回。
下面,还是以单字符切割,但可以使用正则表达式中的 [] 来指定多种字符:
由于字符串 line 中有连续的 2 个分号,逗号或者空格,因此可以使用 [;s,]+ 来切割:
最后,上面的字符串在切割时,分隔符都没有被保留下来,使用括号捕获分组,即可保留分隔符:
re.sub 提供比字符串的 replace 方法更加强大的功能:对于输入的字符串 string ,利用正则表达式 pattern 强大的字符串处理功能,实现复杂的字符串替换处理为 repl ,返回被替换后的字符串。
下面的例子中,我们将句子中多余的空格和数字去掉:
如果想要知道替换过程中,共发生了多少次替换,可以使用 subn :
小结:
上述的案例中,我们每次都需要传入正则表达式,相应的函数每次在调用时,都需要编译一次正则表达式。如果上述过程需要多次重复,那么每次都去耗费时间编译正则表达式是很不划算的。
re 模块为我们提供了 compile 函数,用来编译正则表达式模式,返回编译好模式。因此,可以把那些常用的正则表达式编译成正则表达式对象,以提高效率。
格式: re.compile(pattern, flags=0) ,其中 pattern 为编译时用的表达式字符串, flags 为编译标志位,用于修改正则表达式的匹配方式,如:是否区分大小写,多行匹配等。常用的 flags 有:
注:使用按位或 | 连接多个 flags 。
我们上述介绍的 re 模块的匹配、分割、替换函数, compile 函数的返回值类提供了相应的方法,使用方式类似,只是不需要传入正则表达式字符串而已。
由于用法几乎一致,这里就不一一举例啦~
贪婪模式 : * + ? {m,n} ,正则表达式的重复默认总是尽可能多得向后匹配内容。
非贪婪模式 : *? +? ?? {m,n}? ,尽可能少的匹配内容。