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