我尝试在引号之间匹配多个值(这些值可以是空格以外的任何值)我能达到的最好结果是匹配第一个和最后一个引号之间的所有内容这是正则表达式\[\[\[(\w*img\w*)\s(\w*id|url\w*)+="([^"]|.*)"\]\]\]这是我尝试匹配的字符串(值是数字,但我可以有网址或任何类似的东西)[[[img id="37" w="100" h="70"]]]我应该得到所有参数及其相关值,但我只得到一个值为 beeing 37" w="100" h="70 的参数我知道我很接近,但这个很棘手
1 回答

当年话下
TA贡献1890条经验 获得超9个赞
我不认为你需要所有的\w
. 而且我还建议按照评论中的建议将任务分为两部分。
但是,我也看到了一个选项,只需一步即可:
\[\[\[img(?:\s(\w+)="([^"]+)")?(?:\s(\w+)="([^"]+)")?(?:\s(\w+)="([^"]+)")?\]\]\]
这基本上是 wrapper [[[]]]
,一个普通的字符部分img
,然后(?:\s(\w+)="([^"]+)")?
根据您期望出现的属性重复多次。(\w+)
匹配属性的名称([^"]+)
及其值。
添加回答
举报
0/150
提交
取消