regex - 只匹配一个模式一次

标签 regex lookahead find-occurrences

我有一个字符串

foo-bar-bat.bla

我只想匹配 foo
我有缺陷的模式同时匹配 foobar
\w+(?=-.*\.bla)

如何丢弃 bar ?或者甚至更好,我怎么能在 foo 之后停止匹配东西? ?

最佳答案

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

^\w+(?=-.*\.bla)

Regular expression image

Edit live on Debuggex
^符号匹配字符串的开头。因此将采用字符串的第一个匹配项。
?=旨在确保跟随的组未被捕获但存在。

关于regex - 只匹配一个模式一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392753/

相关文章:

Java - 使用正则表达式捕获可选字段?

regex - 检查正则表达式是否不明确

正则表达式替换匹配项,但也会忽略引号内的匹配项

regex - 如何在正则表达式中结合正面和负面条件?

php - JavaScript 和 PHP 之间前瞻断言的惰性差异

java - 文件中 HashMap 字符串出现次数 [JAVA]

java - 这段代码中的每个元素 ("(.)\\1{1,}", "$1") 是做什么的?

regex - 嵌套正则表达式向前和向后看

r - 如何从向量中提取最后一次出现的特定 'string'

c - 未排序数组中元素的出现次数 O(n)