Есть ли способ построить регулярное выражение, которое соответствовало бы подобным подстрокам (-
означает один и тот же символ, например, дефис):
'-'
' -'
'- --'
' --- '
'- -- --- '
а никогда простой '\s+'
?
Нет. Этот соответствует ' '
, который я бы исключил.
Пробовать \s*(?:-\s*)+
или \B(?=\s*-)[\s-]+
?
\s*(?:-\s*)+
работает на regex101, как и ожидалось. По крайней мере, я еще не столкнулся с подвохом. Спасибо!
Чтобы сопоставить последовательности пробелов и дефисов как минимум с одним дефисом, вы можете использовать
\s*(?:-\s*)+
См. демонстрация регулярного выражения.
Подробности
\s*
- 0+ пробелов(?:-\s*)+
- 1 или более повторений
-
- дефис\s*
- 0+ пробелов.
Вы имеете в виду
[\s-]+
?