如果有字符,如何在开括号(
之前添加空格,如果有空格,如何不添加空格?
我试着用这个表达:
re.sub("[^}]*(", ' $1', line)
但它不起作用。
如何检查开括号前是否有字符,如果没有空格,请添加空格?
您可以使用以下正则表达式:
(S)(
并替换为r'1 ('
。(S)
将把任何不是空白的字符捕获到组1中。由于它是一个消耗子模式,因此字符串开头的(
不会匹配((
之前必须有一个字符)。
在Python中,backreferences是用反斜杠定义的(或者用g<n>
语法来使它们明确)。
请注意,要在字符串开头匹配一个(
(在字符串中的第一个(
之前添加一个空格),请使用r'(?<!s)('
regex(带有一个非消耗子模式-一个负查找(?<!s)
,确保(
之前没有空白字符):
re.sub(r"(?<!s)(", r' (', "(some text)") # => " (some text)"
请参阅Python演示:
import re
print(re.sub(r"(S)(", r'1 (', "(some text)")) # => (some text)
print(re.sub(r"(S)(", r'1 (', "Text(some text)")) # => Text (some text)
print(re.sub(r"(?<!s)(", r' (', "(some text)")) # => (some text)
请注意,使用原始字符串文字来声明正则表达式和正则表达式替换(这有助于避免许多意外问题)。请参阅什么是"原始字符串正则表达式"以及如何使用它
尝试subthis:
(w)(
有了这个:
1 (
演示