有像
这样的字符串booboo-en
booboo-duck-en
booboo-the-duck-en
booboo-the-duck-so-nice-en
我尝试提取除最后一个(-en
)之外的所有字符串(无论分隔数量的组),以获取:
booboo
booboo-duck
booboo-the-duck
依旧......
使用
^((?:[^-]+-){2}[^-]+).*$
我可以提取2个组,但我不知道如何为任意数量的组修改它......
答案 0 :(得分:1)
你为什么要使用正则表达式?
至少任何脚本语言都有一个拆分原语
他们通常返回数组
组合拆分和删除数组的最后一个元素是微不足道的
答案 1 :(得分:-1)
试试这个:
^.*(?=-[^-]*$)
这将匹配字符串,直到最后一个破折号:
^ # Start of string
.* # Match any number of characters
(?= # until it's possible to match:
- # a dash
[^-]* # followed only by characters other than dashes
$ # until the end of the string.
) # (End of lookahead assertion)