Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中带html标记的字符串分段_Python_Segments - Fatal编程技术网

python中带html标记的字符串分段

python中带html标记的字符串分段,python,segments,Python,Segments,我正在尝试使用Python将字符串分成更小的段。 各种情况可以是: str1=“你好,世界。这是一个理想的示例字符串。” 结果: 你好,世界。 这是一个理想的示例字符串 str2=“你好,世界。这是一个HTML示例字符串。” 结果: 你好,世界。 这是一个HTML示例字符串。 str3=“1.你好,世界。2.这是一个字符串。” 结果: 1.你好,世界。 2.这是一根绳子 这是我的密码。但我似乎无法实现第二种情况: import re string = """<h1>This is

我正在尝试使用Python将字符串分成更小的段。 各种情况可以是:
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或普通文本。这就是为什么我需要考虑所有的案例。你的分割字符串的标准对我来说似乎是模糊的……你想吗?问题是解析的源可以是任意的。这就是为什么我需要考虑所有的案例。你的分割字符串的标准对我来说似乎很模糊。