如果在同一行,则正则表达式不匹配

时间:2020-03-23 11:54:41

标签: python regex python-regex

我创建了一个与我的自定义html标记匹配的正则表达式。 例如:

<var-input id="" kind="{&quot;id&quot;:2,&quot;art&quot;:&quot;TEXT&quot;,&quot;name&quot;:&quot;Textfeld&quot;,&quot;default&quot;:null}" choices="1,2,3,four" value="radio not text"></var-input>

html标签始终具有<var-input id="" kind="" choices="" value=""></var-input>形式

以下是限制条件:

  • id是uuid4字符串或为空
  • kind是JSON字符串化对象
  • choices是一个数组(以逗号分隔)或为空
  • value是字符串或空

这是我的正则表达式:

<var-input id=\"([0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12})?\" kind=\"({.*})\" choices=\"([a-zA-Z0-9_,\s]*)\" value=\"([a-zA-Z0-9_,\s]*)\"></var-input>

像上面的例子一样,它适合一场比赛。但是如果一行中有多个<var-input ...></var-input>,则正则表达式无法正常工作。 为什么? Here is an example

谢谢!

1 个答案:

答案 0 :(得分:1)

只需使{.*}不贪婪:{.*?}

Updated demo