在Python中使用regex在引号中添加单词

时间:2017-10-30 13:54:07

标签: python regex

我的字符串中有单词word:。我想把它放在这样的引号中:"word":。我试过这样:

new_string = re.sub(r'\n*:', '\"*\"')

但它不起作用。有人能为我提供这个简单的解决方案吗?我需要了解正则表达式是如何工作的。

2 个答案:

答案 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)应该做到这一点。