正则表达式在带连字符的字符串周围添加引号

Regex to add quotes around hyphenated strings

我想在字符串中所有带连字符的单词周围添加引号。

对于示例字符串,所需的函数 add_quotes() 应该像这样执行:

>>> s = '{name = first-name}'
>>> add_quotes(s)
{name = "first-name"}

我知道如何使用 this Regex selector 查找所有出现的带连字符的作品,但不知道如何在原始字符串中的每个出现处添加引号。

>>> import re
>>> s = '{name = first-name}'
>>> re.findall(r'\w+(?:-\w+)+', s)
['first-name']

正则表达式可用于标准库中的 Python 模块 re

import re

def add_quotes(s):
    return re.sub(r'\w+(?:-\w+)+', r'"\g<0>"', s)

s = '{name = first-name}'
add_quotes(s)  # returns '{name = "first-name"}'

使用 this selector.

找到带连字符的单词