Python 带有特殊字符和文本的正则表达式

Python 带有特殊字符和文本的正则表达式,python,regex,Python,Regex,鉴于: 例如,在主机的情况下,如何匹配可以有abc.dfg.ewq.asd等的stirng?数据只能包含“.”作为特殊字符 我得到的表达式只能匹配文本,因为w+ str_var ='host="dsa.asd.dsc"port="1234"service_nameORdbName="dsa"pass="dsa"user="ewq"' 预期结果: result = re.findall('(\w+)="(\w+)"', str_var) 您可以将添加到\w: [('host':'dsa

鉴于:

例如,在主机的情况下,如何匹配可以有abc.dfg.ewq.asd等的stirng?数据只能包含“.”作为特殊字符

我得到的表达式只能匹配文本,因为w+

str_var ='host="dsa.asd.dsc"port="1234"service_nameORdbName="dsa"pass="dsa"user="ewq"'
预期结果:

    result = re.findall('(\w+)="(\w+)"', str_var)

您可以将
添加到
\w

[('host':'dsa.asd.dsc'), ('port', '1234'), ('service_nameORdbName', 'dsa'), ('pass', 'dsa'), ('user', 'ewq')]
或者,将
分隔的单词与
\w+(?:\.\w+)*
匹配(一个或多个单词字符后跟0个或多个重复的点,然后是一个或多个单词字符):

或者,在双引号之间匹配可能包含除双引号以外的任何内容的值(使用与
“[^”]*”
匹配的
,然后是零个或多个字符,而不是双引号,然后是
):


请参阅。

打印(关于findall('(\w+)=“([^“]+)”,str_var))
,请查看它的工作原理!感谢允许所有非引号的字符。将允许使用“.”以外的特殊字符。
result = re.findall('(\w+)="([\w.]+)"', str_var)
result = re.findall('(\w+)="(\w+(?:\.\w+)*)"', str_var)
result = re.findall('(\w+)="([^"]+)"', str_var))