试图绕过Regex capturing groups
并且遇到一些麻烦。
我有一些字符串,我想为其捕获组:
@msg=hello;name=test 1 // Groups: msg = hello, name = test, rest = 1
@msg=hi 2 // Groups: msg = hello, name = null, rest = 2
@name=tt 3 // Groups: msg = null, name = tt, rest = 3
我有以下regex
:
msg=(?P<msg>[^;]+)?.*name=(?P<name>[^;]+)?\s(?P<rest>.*)
第一行可以正常工作,但不是第二行或第三行。知道我怎么能让它也适合他们吗?我尝试在捕获组周围放置一些()?
无效:
// Below gets me weird results
(msg=(?P<msg>[^;]+)?)?.*(name=(?P<name>[^;]+)?)?\s((?P<rest>.*))?
感谢。
答案 0 :(得分:1)