Python正则表达式搜索不适用于包含冒号的字符串(:)

Saj*_*mad 2 python regex string

我有一个字符串,可以像"一些字符串{{key:value}}一样,字符串{{key:value}} {{key:value}}一些字符​​串"我想找到所有{{key:value}匹配给定字符串中的子字符串.对于这个我正在尝试的模式是:

string ="fdfd{{dsfdss:dssssasa}} fdsfdsfds"
pattern = re.compile("\\\\[a-z]\w+\:\[a-z]\w+\}}")
abc = re.search( pattern, string)
Run Code Online (Sandbox Code Playgroud)

我也试过这个

pattern = re.compile("\\\\[a-z]\w+:[a-zA-Z]\w+\}}")
abc = re.search( pattern, string)
Run Code Online (Sandbox Code Playgroud)

但每次它都返回无

建议我完成它的最佳方法.

Cyr*_*bil 6

试试这个简单的正则表达式:

({{(\w+):(\w+)}})
Run Code Online (Sandbox Code Playgroud)

它返回完整匹配和元素:

比赛1
1. [4-23] {{dsfdss:dssssasa}}
2. [6-12] dsfdss
3. [13-21]dssssasa

尝试住在这里

Python代码:

import re
string = u'fdfd{{dsfdss:dssssasa}} fdsfdsfds'
pattern = re.compile(ur'({{(\w+):(\w+)}})')
print(re.findall(pattern, string))
Run Code Online (Sandbox Code Playgroud)

编辑:对于内部部分,正则表达式是 {{(\w+:\w+)}}