我需要解析一条线,它可以看作其中一条:
define a as 5
define b as 5.5
define c as "hello, stackoverflow"
我试图用正则表达式做这件事。
为此,我写了模式'define ([a-zA-Z_]\w*) as ([\w"][\w \.]*[\w"]*)'
我无法理解的问题是有任何方法可以检查:如果单词as
之后的单词以"
开头,那么它应该以{{1}}结尾。感谢您的任何意见和建议。
答案 0 :(得分:1)
我建议使用替换:
("[^"]+"|[\w.]+)
请参阅regex demo
"[^"]+"
捕获内部没有引号的引用子字符串(""
- 允许空*
,使用+
代替[\w.]+
) - OR- 1+字符或点(与AuthUserFile /path/to/password/file/.htpasswd
匹配)。