仅匹配一次模式

waw*_*iwa 6 regex lookahead find-occurrences

我有一串

foo-bar-bat.bla
Run Code Online (Sandbox Code Playgroud)

我只想比赛 foo

我有缺陷的模式匹配都foobar

\w+(?=-.*\.bla)
Run Code Online (Sandbox Code Playgroud)

我该如何丢弃bar?甚至更好,之后如何停止匹配foo

Hug*_*ois 6

您可以使用以下模式(只要您的字符串始终按照您所说的方式进行格式化):

^\w+(?=-.*\.bla)
Run Code Online (Sandbox Code Playgroud)

正则表达式图像

在Debuggex上实时编辑

^符号与字符串的开头匹配。因此将采用字符串的第一个匹配项。

?=是为了确保集团继不会捕获,但是否存在。