猿问

如何编写匹配第一个和最后一个引号之间的所有内容的正则表达式?

我尝试在引号之间匹配多个值(这些值可以是空格以外的任何值)我能达到的最好结果是匹配第一个和最后一个引号之间的所有内容

这是正则表达式

\[\[\[(\w*img\w*)\s(\w*id|url\w*)+="([^"]|.*)"\]\]\]

这是我尝试匹配的字符串(值是数字,但我可以有网址或任何类似的东西)

[[[img id="37" w="100" h="70"]]]

我应该得到所有参数及其相关值,但我只得到一个值为 beeing 37" w="100" h="70 的参数

我知道我很接近,但这个很棘手

临摹微笑
浏览 357回答 1
1回答

当年话下

我不认为你需要所有的\w. 而且我还建议按照评论中的建议将任务分为两部分。但是,我也看到了一个选项,只需一步即可:\[\[\[img(?:\s(\w+)="([^"]+)")?(?:\s(\w+)="([^"]+)")?(?:\s(\w+)="([^"]+)")?\]\]\]这基本上是 wrapper [[[]]],一个普通的字符部分img,然后(?:\s(\w+)="([^"]+)")?根据您期望出现的属性重复多次。(\w+)匹配属性的名称([^"]+)及其值。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答