我正在尝试开发一个正则表达式,它在连字符的第一个实例之前拉出前几个字符,然后在第一个连字符后保存第二组元素。排除第一个连字符后的连字符
这里的正则表达式:
^([^-]*)(?(?=-)(\S.*)|())
而且这里有几个测试案例:
SSB x Dj Chad - Crazy Beat - Tarraxo
Dj [R]afaa [F]ox -Tarraxo Do Inicio Das Aulas (Nova Escola Producões)
Dj Snakes Share - MaloncyBeatz - Perfecto
Tarraxo Das Brasileiras [2014] [TxiGa Pro]
IF语句处理最后一个条件很好,但我的问题是,在最初的几个项目,则返回第二组使用连字符而不是排除它。
换句话说: Dj Snakes Share - MaloncyBeatz - Perfecto
应该返回:
- 组1:
Dj Snakes Share
- 组2:
MaloncyBeatz - Perfecto
相反,第2组为:- MaloncyBeatz - Perfecto
更新
https://regex101.com/r/2BQPNg/12
使用^([^-]*)[^-]\W*(.*)
,它的工作原理,但它提出的最后一种情况下(在没有连字符)的问题。它不包括]
。
好像它是您的测试链接,现在的工作。 – tima
@tima最后一种情况现在排除字符串 – Adib