python中带html标记的字符串分段
我正在尝试使用Python将字符串分成更小的段。 各种情况可以是:python中带html标记的字符串分段,python,segments,Python,Segments,我正在尝试使用Python将字符串分成更小的段。 各种情况可以是: str1=“你好,世界。这是一个理想的示例字符串。” 结果: 你好,世界。 这是一个理想的示例字符串 str2=“你好,世界。这是一个HTML示例字符串。” 结果: 你好,世界。 这是一个HTML示例字符串。 str3=“1.你好,世界。2.这是一个字符串。” 结果: 1.你好,世界。 2.这是一根绳子 这是我的密码。但我似乎无法实现第二种情况: import re string = """<h1>This is
str1=“你好,世界。这是一个理想的示例字符串。”
结果: 你好,世界。
这是一个理想的示例字符串 str2=“
你好,世界。
这是一个HTML示例字符串。”
结果:
你好,世界。
这是一个HTML示例字符串。
str3=“1.你好,世界。2.这是一个字符串。”
结果:
1.你好,世界。
2.这是一根绳子
这是我的密码。但我似乎无法实现第二种情况:
import re
string = """<h1>This is a string.</h1><a href="www.abc.com"> This is another part. <P/>"""
segment_regex = re.compile(r"""
(
\r\n|
\\r\\n|
\n|
\\n|
\r|
\\r|
\t|
\\t|
(?:
(?<=[^\d][\.|\!|\?])
\s+
(?=[A-Z0-9])
)|
(?:
(?<=[\.|\!|\?])\s*(?=<.*?>)
)
)
""", re.VERBOSE)
seg = segment_regex.split(string)
segments = seg[::2]
separator = seg[1::2]
print("Segments are ---->>")
for s in segments:
print (s)
print("Separators are ---->>")
for p in separator:
print (p)
重新导入
string=“”这是一个字符串。这是另一部分。“”
段\正则表达式=重新编译(r“”
(
\r\n|
\\r\\n|
\n|
\\n|
\r|
\\r|
\t|
\\t|
(?:
(?")
对于分段的s:
印刷品
打印(“分隔符为-->>”)
对于分离器中的p:
印刷品(p)
正则表达式可能试图一次做太多的事情。一种更简单、更易于管理的方法是首先检测字符串类型html,理想情况下,首先列出,然后为每个字符串调用适当的处理器。例如:-
import re
string = """<h1>This is a string.</h1><a href="www.abc.com"> This is another part. <P/>"""
if re.search('<.*?>', string):
split_html(string)
elif re.search('\\d\\.', string):
split_list(string)
else:
split_ideal(string)
重新导入
string=“”这是一个字符串。这是另一部分。“”
如果重新搜索(“”,字符串):
拆分html(字符串)
elif重新搜索(“\\d\\”,字符串):
拆分列表(字符串)
其他:
分裂理想(字符串)
同样,虽然这可能适用于上述情况,但一般的“拆分器”将更加复杂,我并不认为这种方法适用于所有人。正则表达式可能试图一次完成太多的事情。一种更简单、更易于管理的方法是首先检测字符串类型html,理想的,首先列出,然后为每种类型调用适当的处理器。类似于:-
import re
string = """<h1>This is a string.</h1><a href="www.abc.com"> This is another part. <P/>"""
if re.search('<.*?>', string):
split_html(string)
elif re.search('\\d\\.', string):
split_list(string)
else:
split_ideal(string)
重新导入
string=“”这是一个字符串。这是另一部分。“”
如果重新搜索(“”,字符串):
拆分html(字符串)
elif重新搜索(“\\d\\”,字符串):
拆分列表(字符串)
其他:
分裂理想(字符串)
同样,虽然这可能适用于上述情况,但一般的“拆分器”这将是非常复杂的,我不主张这种方法对所有人都有用。你想尝试吗?问题是,解析的源可以是任何HTML或普通文本。这就是为什么我需要考虑所有的案例。你的分割字符串的标准对我来说似乎是模糊的……你想吗?问题是解析的源可以是任意的。这就是为什么我需要考虑所有的案例。你的分割字符串的标准对我来说似乎很模糊。