我希望匹配除
之外的任何字词(-(-)?\w*(=\w*)?)
示例输入:
test --par2 --par23=whatever 0 xd true hello "string test"
test --par23=whatever 0 xd true hello --par2 "string test"
test 0 xd "string test" true hello --par2 --par23=whatever
我想要的是:
0, xd, true, hello, "string test"
我不想要:test
,--par2
和--par23=whatever
语言:JavaScript
什么是好主意?
答案 0 :(得分:1)
见The Trick。怎么样匹配你不需要的东西,capturing你需要什么。
不想要
^\S+
one or more 非空白位于start(\S
否定short \s
)
\W-\S+
字符串,例如-foo
,--bar
,但需要bar-baz
(\W
非字符) 但(
抓取)
"[^"]+"
任何引用的内容(使用negated class)\S+
一个或多个剩余的非空白 根据匹配优先级进行排序,并与管道|
("[^"]+")|^\S+|\W-\S+|(\S+)
See demo at regex101。抢夺两组like in this fiddle。
[“0”,“xd”,“true”,“hello”,“”string test“”]
如果使用PCRE,您可以skip the unneeded stuff使用动词(*SKIP)(*F)
。
答案 1 :(得分:0)
我希望我理解你,你的意思是这个吗?
=\S* ([^=]*)
读取group1中的匹配文本。