keyword =“value”正则表达式

时间:2014-10-21 05:34:43

标签: regex

我的正则表达式

(?<Keyword>\w+)\s*=\s*\"(?<Value>\w+)\"

与我

中的所有关键字,值对匹配不正确
oauth_version="1.0", oauth_signature_method="HMAC-SHA1", oauth_nonce="K7WmP9YrR2oCYC3", oauth_timestamp="1413801976", oauth_consumer_key="test", oauth_signature="8ad2fZh23q%2FWfK6RykqcvhlLxH4%3D"

因为我使用\ w它只匹配3组。我需要一些与之相符的东西。% - 你知道我应该使用什么吗?

2 个答案:

答案 0 :(得分:1)

(?<Keyword>\w+)\s*=\s*\"(?<Value>[\w.%-]+)\"

试试这个。这将给所有团体。

\w更改为[\w.%-]以包含.%-

参见演示。

http://regex101.com/r/dK1xR4/7

答案 1 :(得分:1)

使用否定字符类[^\"]代替\w+来匹配"的任何字符一次或多次。

(?<Keyword>\w+)\s*=\s*\"(?<Value>[^\"]+)\"

DEMO