Вы можете использовать взгляд назад, чтобы убедиться, что ваша строка начинается с символа после =
:
(?<=\\=)([\\s\\w\\-.]*)$
Что касается того, почему он падает, это второй *
вокруг группы. Я не уверен, зачем вам это нужно, так как это звучит так, как будто вы просите:
- Один символ, все, кроме равных
- Затем 0 или более повторов из следующей группы:
- Любое количество пробелов
- Тогда любое количество символов слова, тире или точка
- Конец строки
В любом случае, возьмите это *
, и оно больше не будет вращаться вечно, но я бы все же выбрал более конкретное регулярное выражение, используя взгляд позади.
Кроме того, я не знаю, как вы используете это, но почему у вас там был $
? Тогда вы можете соответствовать только последнему в строке (если у вас их больше одного). Похоже, вам лучше заглянуть в новую линию или в конце: (?=\\n|$)
[ Редактировать ]: обновление для каждого комментария ниже.