Python 如何使用点拆分而不拆分链接

Python 如何使用点拆分而不拆分链接,python,regex,split,Python,Regex,Split,我想按点拆分(),但不想拆分链接 假设字符串是- <p>This is a paragraph. I want to split it. <a href="somesite.com">Link</a> 这是一段。我想把它分开。 预期产量- '<p>This is a paragraph' ,'I want to split it' ,'<a href="somesite.com">Link&l

我想按点拆分(
),但不想拆分链接

假设字符串是-

<p>This is a paragraph. I want to split it. <a href="somesite.com">Link</a>
这是一段。我想把它分开。
预期产量-

'<p>This is a paragraph' ,'I want to split it' ,'<a href="somesite.com">Link</a>'
“这是一个段落”,“我想拆分它”,“我想拆分它”
电流输出-

'<p>This is a paragraph' ,'I want to split it' ,'<a href="somesite', 'com">Link</a>'
“这是一个段落”,“我想拆分它”,“我想拆分它”

请注意,我不希望链接被拆分。另外,我知道您可以使用
.split(“.”
拆分它,但我怎么能不拆分该链接呢?

解决方案1:Strings对象有一个名为“split”的方法:

s = 'google.com'

splitted = s.split('.')

print(splitted)

>>> ['google', 'com']
它接受一个字符串并由一个子字符串(如“.”)拆分

解决方案2:在字符串中找到“.”的位置,然后手动拆分:

s = 'google.com'

idx = s.indexOf('.')

first = s[:idx]

sec = s[idx:]

print(first)
>>> google

print(sec)
>>> .com
使用html解析器(例如)。找到一个段落开头,然后像下面这样拆分其中的数据:

from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):
    def __init__(self):
        self.in_paragraph = False
        super(MyHTMLParser, self).__init__()

    def handle_starttag(self, tag, attrs):
        print("Encountered a start tag:", tag)
        if tag == 'p':
            self.in_paragraph = True
        else:
            self.in_paragraph = False

    def handle_endtag(self, tag):
        print("Encountered an end tag :", tag)

    def handle_data(self, data):
        if self.in_paragraph:
            data = data.split('.')
        print("Encountered some data  :", data)

parser = MyHTMLParser()
parser.feed('<p>This is a paragraph. I want to split it. <a href="somesite.com">Link</a>')

我不认为你想用正则表达式做什么


最简单的方法是简单地按“.”分割,然后在结果列表上迭代,并在每个字符串中搜索
“你能提供输入字符串和预期的输出吗?你能描述一下你想拆分的内容而不是不想拆分的内容,可能是一个句点,表示句子的结尾,所以后面跟着一个空格?嘿@GehanFernando,我刚刚更新了问题,请看一看。”嘿@doctorlove,我刚刚在问题中添加了它,请看一眼。不要使用正则表达式解析xml/html:谢谢你的回答,但这不是预期的。当然,这是我的错误,请重新检查问题,我添加了一些内容。嘿,谢谢你的回答,但我想你没有看到我的预期结果 这是一段“,”我想拆分它“,”我建议您可以使用html解析器来实现这一点-我还没有为您编写代码来获得您想要的确切输出。你可以通过改变打印语句来达到目的难道没有简单的代码吗?这似乎太多了!看,它会把它分成-‘这是一段’,‘但是,我希望它是‘这是一段’,’
Encountered a start tag: p
Encountered some data  : ['This is a paragraph', ' I want to split it', ' ']
Encountered a start tag: a
Encountered some data  : Link
Encountered an end tag : a