在字符串中:
my_string = 'log (x)'
我需要删除左括号前面的所有空格' '
'('
这post建议使用:
re.sub(r'.*(', '(', my_string)
这是一种矫枉过正,因为它与my_string[my_string.index('('):]
具有相同的效果,也会删除'log'
是否有一些regexpr魔法可以删除另一个特定字符前面的所有空格?
答案 0 :(得分:4)
为什么不呢:
re.sub(' +\(', '(', my_string)
答案 1 :(得分:3)
使用前瞻:
security = Security(app, user_datastore)
# This processor is added to all templates
@security.context_processor
def security_context_processor():
return dict(hello="world")
# This processor is added to only the register view
@security.register_context_processor
def security_register_processor():
return dict(something="else")
由于re.sub(r"\s+(?=\()","",my_string)
运算符,括号内的实体未被消耗(未被替换),?=
匹配任意数量的空格(制表符,空格等)。
没有正则表达式的另一种可能性:
\s+
(根据"(".join([x.rstrip() for x in my_string.split("(")])
拆分字符串,然后使用在列表解析中应用(
的相同字符将其连接回来)
答案 2 :(得分:1)
您可以使用前瞻断言,请参阅Python文档中的regular expression syntax。
import re
my_string = 'log (x)'
print(re.sub(r'\s+(?=\()', '', my_string))
# log(x)