"
,请将其移除。^.+?(?=\")
或者,如果您需要匹配包括换行符在内的任何字符,请使用以下方法之一:
(?s)^.+?(?=\")
^[\w\W]+?(?=\")
^
匹配字符串的开头,.+?
匹配任意一个或多个字符,尽可能少地匹配到第一个"
,并将其排除在匹配之外,因为 "`" 是前瞻(零宽断言)的一部分。
在另外两个正则表达式中,(?s)
使点号跨越多行匹配,[\w\W]
是一个解决方案,如果不支持(s)
(或其/s
形式),则匹配任何字符。
最好使用否定字符类:
^[^"]+
请查看另一个演示。在这里,^[^"]+
匹配除"
以外的1个或多个字符(参见[^"]+
)从字符串的开头(^
)开始。
grep -Eo '^[^"]+'
应该从一行的开头提取字符串到第一个"
,并将其排除在匹配之外。请参见此演示。 - Wiktor Stribiżew