python正则匹配单词和字符

匹配所有单词比较好用的:

r"\w'+"
r"[a-zA-Z]+"

匹配所有标点符号:

r"[^0-9A-Za-z\u4e00-\u9fa5]"

匹配所有单词以及标点符号,并返回列表,但是都有点问题,不过我已经找到了解决办法如下:

import re
strs =  "Hello, I'm a string!"
pat1 = r"\S*"
print(re.findall(pat1, strs)) 
# 输出结果
# ['Hello,', '', "I'm", '', 'a', '', 'string!', '']pat2 = r"[A-Za-z_0-9]*"
print(re.findall(pat2, strs)) 
# 输出结果
# ['Hello', '', '', 'I', '', 'm', '', 'a', '', 'string', '', '']pat3 = r"[\w']+|[.,!?;]"
print(re.findall(pat3, strs))
# 输出结果
# ['Hello', ',', "I'm", 'a', 'string', '!']
# 但是这种方法存在缺陷pat4 = r"[\w\']+|[^0-9A-Za-z\u4e00-\u9fa5]"
print(re.findall(pat3, strs))
# 输出结果,完美解决问题
# ['Hello', ',', ' ', "I'm", ' ', 'a', ' ', 'string', '!']

匹配一个文件中两个标识符号之间的文本:

file1 = open("file1.txt", 'r', encoding="utf-8")
file1 = file1.read()
"""
key1
1235
----
125615
key2
---
15625
"""
key1 = "key1"
key2 = "key2"
pat1 = re.compile(key1 + '(.*?)' + key2, re.S)
res = pat1.findall(file1)[0]
print(res)
"""
1235
----
125615
"""

提取指定字符串之后的全部内容:

print(re.findall('(?<=key).*$', "adnkanddo0key"))
# 

本文链接:https://my.lmcjl.com/post/15214.html

展开阅读全文

4 评论

留下您的评论.