【问题标题】:Find and replace tagged words from string using python?使用python从字符串中查找和替换标记的单词?
【发布时间】:2020-06-03 10:20:03
【问题描述】:

我需要查找并替换段落中的一些标记词。

str = "my name is [tag1]alan[/tag1] . i am a [tag2]python[/tag2] developer."

tag1 和 tag2 是我需要找到并用另一个词替换它们的中间内容的词。 标签不受限制。它可能有超过 10 个。但每个标签都以相同的方式括起来,比如在方括号中,[tag][/tag]。

我想要这样的结果,

str = "my name is alan . i am a python developer."

有什么方法可以使用正则表达式吗?不用beautifulsoup。

【问题讨论】:

  • 那么您要替换标签还是标签之间的文本?因为您的示例输出表明前者。
  • 嵌套标签应该如何处理?

标签: python regex string replace find


【解决方案1】:

您可以使用以下正则表达式:

import re

my_str = 'my name is [tag1]alan[/tag1]. i am a [tag2]python[/tag2] developer.'

re.sub(r'\[[/]*tag\d+?\]', '', my_str )

输出:

'my name is alan . i am a python developer.'

正则表达式解释:

  • \[ = 以[ 开头
  • [/]* = 下一个字符可以是/,也可以不是
  • tag = 必须包含字符串tag
  • \d+?= 必须包含数字
  • \] = 以 ] 结尾

【讨论】:

    【解决方案2】:

    使用正则表达式。

    例如:

    import re
    
    string = "my name is [tag1]alan[/tag1]. i am a [tag2]python[/tag2] developer."
    print(re.sub(r"(\[.*?\])", "", string))
    # --> my name is alan. i am a python developer.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 2016-01-29
      • 1970-01-01
      • 2014-07-21
      相关资源
      最近更新 更多