当前位置: 首页 > 知识库问答 >
问题:

查找两个字符串之间的子字符串[重复]

岳枫
2023-03-14

我有一个这样的字符串:


string = r'''<img height="233" src="monline/" title="email example" width="500" ..
title="second example title"  width="600"...
title="one more title"...> '''

我正在尝试获取任何显示为title(title=“anything here”)的内容。我已经尝试过了,但无法正常工作。

re.findall(r'title=\"(.*)\"',string)

共有3个答案

查淮晨
2023-03-14

这里的问题是下一个"符号被解析为字符,并被视为RE的(.*)的一部分。对于您的用途,您只能使用字母和数字。

华飞驰
2023-03-14

正如@Austin和@Plato77在评论中所说,有一种更好的方法来解析python中的HTML。我也支持这一点,但如果你想通过正则表达式完成它,这可能会有所帮助

c = re.finditer(r'title=[\"]([a-zA-Z0-9\s]+)[\" ]', string)

for i in c:
    print(i.group(1))
叶德本
2023-03-14

我认为你的正则表达式太贪婪了。你可以尝试这样的东西

re.findall(r'title=\"(?P<title>[\w\s]+)\"', string)

正如@Austin和@Plato77在评论中所说,用python解析HTML有更好的方法。更多内容见其他SO回答。有一些常用的工具可以做到这一点,比如:

  • https://docs.python.org/3/library/html.parser.html
  • https://www.simplifiedpython.net/parsing-html-in-python/
  • https://github.com/psf/requests-html/使用Python请求获取html

如果您想阅读更多关于不同python HTML解析器性能测试的信息,可以在此处了解更多信息

 类似资料:
  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案:

  • 问题内容: 我正在尝试 使用循环从两个不同的用户输入中打印常用字母。(我需要使用for循环来完成它。)我遇到了两个问题:1.我的语句“ If char not in output …”没有提取唯一值。2.输出为我提供了单个字母列表,而不是单个字符串。我尝试分割输出,但是分割遇到类型错误。 问题答案: 您正在尝试执行“设置相交”。Python有 相同的方法。您可以将其用于您的用例,例如: 将返回字符

  • 问题内容: 给定两个相等长度的字符串,是否有一种优雅的方法来获取第一个不同字符的偏移量? 显而易见的解决方案是: 但这对于如此简单的任务而言似乎并不正确。 问题答案: 您可以使用按位XOR()的一个不错的属性来实现此目的:基本上,当您将两个字符串异或时,相同的字符将变为空字节()。因此,如果我们对两个字符串进行异或运算,我们只需要使用以下命令找到第一个非空字节的位置: 这里的所有都是它的。因此,让

  • 问题内容: 我有一个字符串,例如:“这是应该使用的URL http://www.google.com/MyDoc.pdf ” 我只需要提取从http开始并以pdf结尾的URL:http: //www.google.com/MyDoc.pdf 这使我的输出为“应使用的http://www.google.com/MyDoc.pdf” 需要帮助。 问题答案: 这种问题是针对正则表达式进行的: 正则表达式

  • 问题内容: 我有这样的java字符串: 我想删除标签。我还有一些其他字符串,其中标签的长度更长,因此我想找到一种方法来删除“ <>”字符之间的所有内容,包括那些字符。 一种方法是使用将字符串与regEx进行比较的内置字符串方法,但是我不知道如何编写它们。 问题答案: 注意使用正则表达式时,解析HTML(由于其允许的复杂性),但是,对于“简单” HTML,以及简单的文本(文本没有字面建议或它)这将工

  • 问题内容: 我从html解析中得到一个字符串,即 我的代码是这样的 我不确定我的第二个拆分字符串应该是“’”还是“’,” 我希望我的结果是 问题答案: 我将使用正则表达式从这样的复杂输入中提取子字符串。 Swift 3.1: Swift 2.0: