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/

相关文章:

javascript - 如何修复此正则表达式以删除JSLint不必要的转义警告?

python - 正则表达式-是否要求在\d +中包含特定数字?

c# - 如何匹配 C# 中的第一个子模式?

php - 正则表达式练习 : reluctant quantifier with a lookahead assertion

regex - 复杂的前瞻/非贪婪正则表达式

java - 如何检查特定模式是否位于某个字符之前?

javascript - 如何按日期计算对象数组中的出现次数

c# - 查找数组中最大值的出现

java - 如何将arraylist =设置为正则表达式的每个匹配项

c++ - 该程序接受用户输入的字符并按出现的降序显示它们