【问题标题】:Inserting Whitespace before and after regex match在正则表达式匹配之前和之后插入空格
【发布时间】:2014-12-10 11:58:10
【问题描述】:

我对 Python 语言和 Python 中的正则表达式相当陌生,所以我希望有人能给我一些关于解决这个问题的最佳方法的建议。

我正在遍历一个字符串列表,并在遇到某个正则表达式时尝试“拆分”字符串(以补偿用户输入错误)。

比如找C/S模式,

C/S100 

应该变成

 C/S 100

任何关于如何做到这一点的建议将不胜感激。

【问题讨论】:

  • re.sub(r'(C/S)', r' \1 ', string)
  • 你不需要正则表达式。 'C/S100'.replace('C/S','C/S ')

标签: python regex python-2.7


【解决方案1】:
s = "C/S100"
print re.sub(r'(?=(?:C/S))|(?<=(?:C/S))', r' ', s)

输出:C/S 100

你根本不需要cpature。只需找到匹配后面和匹配后的点。

【讨论】:

    【解决方案2】:

    使用re.sub 函数,如下所示。

    >>> s = "C/S100"
    >>> re.sub(r'(C/S)', r' \1 ', s)
    ' C/S 100'
    

    更新:

    >>> s = "C/S100"
    >>> var = "C/S"
    >>> re.sub('('+var+')', r' \1 ', s)
    ' C/S 100'
    

    【讨论】:

    • 使用这种方法我可以使用变量而不是 C/S,因为 C/S 只是我要寻找的字符串之一。例如:s = C/S100 var = C/S re.sub(r'(var)', r' \1', s)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2019-01-21
    • 2021-01-05
    • 2017-10-28
    • 2019-07-28
    相关资源
    最近更新 更多