我需要重构我的正则表达式以匹配此字符串中的粗体部分:
foo - (bar)()(foo bar) --foo bar foo
捕获组具有括号。我似乎无法弄清楚如何使它匹配“--bar foo bar”“和”--bar =“foo bar”。如果它与未加引号的输入匹配,例如--bar foo bar“,它应该在下一次出现” - “或字符串末尾时停止。
这是我正在使用的正则表达式:
([^="\'\s]+?)(=| ?)((?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\')+)
感谢您非常友好地帮助我解决这个问题。
答案 0 :(得分:0)
也许这就是你需要的东西。使用分隔lookahead。
/--(\w+)[\s="]+(.*?)(?:"|(?=\s*--|$))/s
Have a try at regex101并根据需要抓取捕获。
\ w 代表"字符"。它始终与ASCII字符
[A-Za-z0-9_]
匹配。
\ s 代表"空白字符" ...它包含[ \t\r\n\f]
www.regular-expressions.info/shorthand.html