繁体   English   中英

在搜索模式中用相同数量的空格替换字符串

[英]Replace string with same amount of white spaces in search pattern

我想在我的字符串中保留相同数量的空白,但用空字符串替换'no'。 这是我的代码:

>>> import re
>>> line = '         no command'            
>>> line = re.sub('^\s.+no','',line) 
>>> line
' command'

预期的 output 没有仅用空字符串替换 'no' 并且保留空格的数量:

'         command'

我想你想要一个积极的看法 它并没有完全按照您的代码在行首查找匹配项所做的工作,但希望这能让您走上正确的轨道。

>>> line = '         no command'
>>> re.sub('(?<=\s)no','',line)
'          command'

您还可以捕获前面的文本。

>>> re.sub('^(\s.+)no', r'\1', line)
'          command'

使用.+匹配任何字符,所以如果你只想匹配 1 个或多个空格字符,你应该重复\s+

然后在第 1 组中捕获它以便能够在替换中使用它并匹配no后跟单词边界。

请注意, \s也可以匹配换行符。

import re

line = '         no command'
line = re.sub(r'^(\s+)no\b', r'\1', line)
print(line)

Output

command

使用字符串 class 的替换方法怎么样?

new_line = line.replace("no", "")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM