📅  最后修改于: 2023-12-03 14:53:44.951000             🧑  作者: Mango
Python 中有多种将字符串拆分的方法,但是如果我们的字符串是由一些不均匀对构成的,我们该如何来拆分它们?本文将介绍一种使用正则表达式来实现该目标的方法。
re
模块。import re
<string1>text</string1>
,其中 <string1>
和 </string1>
是起止标记,而 text
则是要匹配的那一部分。我们可以使用以下正则表达式:pattern = r'<string1>(.*?)<\/string1>'
在这个表达式中,.*?
用于匹配任意字符(包括空白字符)零次或多次,?
表示非贪婪匹配,以保证我们能捕获字符串中的最短不均匀对。
re.findall
函数来查找所有匹配的结果。result = re.findall(pattern, input_str)
其中,input_str
是要匹配的源字符串。
result
将返回一个列表,其中的每个元素都是一个不均匀对的文本内容。如果你需要把结果拆分成两个部分,即起止标记和文本内容:
for s in result:
tag_open = '<string1>'
tag_close = '</string1>'
text = s
print(tag_open + text + tag_close)
如果你需要得到完整的不均匀对:
for s in result:
print(s)
import re
input_str = '<string1>hello</string1> <string1>world</string1>'
pattern = r'<string1>(.*?)<\/string1>'
result = re.findall(pattern, input_str)
for s in result:
tag_open = '<string1>'
tag_close = '</string1>'
text = s
print(tag_open + text + tag_close)
使用正则表达式可以很方便地将字符串拆分成不均匀对,是一种非常实用的技巧。