我的字符串中有单词word:
。我想把它放在这样的引号中:"word":
。我试过这样:
new_string = re.sub(r'\n*:', '\"*\"')
但它不起作用。有人能为我提供这个简单的解决方案吗?我需要了解正则表达式是如何工作的。
答案 0 :(得分:1)
使用它。 Sub将采用模式作为第一个参数,并替换为第二个参数中的字符串
在模式中,我有(\w*):
,这将匹配字符串后跟一列,并在内存中保持匹配的字符串。
在替换字符串中,我使用了\1
,其中包含匹配的字符串
>>> s="stack: overflow:"
>>> re.sub(r'(\w*):',r'"\1":',s)
'"stack": "overflow":'
>>>
答案 1 :(得分:1)
要表示字符串的开头,请在正则表达式中使用^
而不是\n
。此外,*
表示"重复前一项任意次数"。最后,要在替换字符串中使用部分匹配,请将regexp的一部分括在括号中,然后使用\1
来引用与regexp的括号部分匹配的字符串。所以,re.sub(r'^(\w+):', r'"\1":', yourstring)
应该做到这一点。