【问题标题】:Deleting a string between repeated delimiters in python删除python中重复分隔符之间的字符串
【发布时间】:2019-03-14 10:29:49
【问题描述】:

我必须在 python 中删除以"===" 开头并以"===" 结尾的字符串(例如,我必须将字符串"===Links===" 替换为空字符串)。但这里的问题是它可以从三个"=" 或四个或任意数量的'=' 开始。我尝试使用正则表达式re.sub('[=]*.*?[=]*', '', string)。但是当它在"===Refs===" 上运行时,它会将"Refs" 作为输出而不是空字符串。你能为此提出一些建议吗?

【问题讨论】:

标签: python regex python-3.x python-2.7


【解决方案1】:
import re

string = '===Ref==='
pattern = r'^\=+.+\=+$'

string = re.sub(pattern, '', string)

【讨论】:

  • @BhanuPrakashReddy 很高兴为您提供帮助,如果这解决了您的问题,请不要忘记接受答案
【解决方案2】:

为时已晚:-(

import re
str = '===Links=== are great, but ===Refs=== bla bla == blub ===blub'

pattern = re.compile('=+\w+=+')
replaced = re.sub(pattern, '', str)
print(replaced)

【讨论】:

  • 老实说,这是迄今为止发布的最好的一篇,因为它的设计考虑了可扩展性。
【解决方案3】:

.? 表示您只接受=s 之间的任何字符或单个字符。尝试将其更改为.* 以匹配=s 之间的多个字符。

也许您可以使用str.startswith() 和str.endswith() 来确定字符串是否以=== 开头/结尾?

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 2019-03-14
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多