双引号的RegEx问题

时间:2016-08-11 15:38:38

标签: php regex

我使用以下RegEx在键和值中划分字符串:

字符串

type="post" id="1" text="Blog Post"

正则表达式

/(?<name>\\S+)=["']?(?P<value>(?:.(?!["']?\\s+(?:\\S+)=|[>"']))+.)["']?/u

只要每个值至少有2个字符,那就可以正常工作。我的值只有1个字符长(就像这里的id)我在数字之后得到一个引用。因此对于具有ID的此示例,我得到以下输出:

type => post
id => 1"
text => Blog Post

我不知道我在RegEx中的错误在哪里。也许有人可以给我一个提示?

非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为最新观点是多余的。 你能试试这个:

/(?<name>\\S+)=["']?(?P<value>(?:.(?!["']?\\s+(?:\\S+)=|[>"']))+)["']?/u

我不知道你如何使用这个正则表达式,但我认为你可以使用这个选项:

/(\w+)=["']?([^"']+)["']/ug

或者向我提供更多信息。