Java регулярное выражение до определенного слова / текста / символов - PullRequest
2 голосов
/ 23 января 2011

Пожалуйста, обратите внимание на следующий текст:

That is, it matches at any position that has a non-word character to the left of it, and a word character to the right of it.

Как получить следующий результат:

That is, it matches at any position that has a non-word character to the 

Это все, пока left

Ответы [ 3 ]

11 голосов
/ 23 января 2011
input.replace("^(.*?)\\bleft.*$", "$1");
  • ^ привязывает к началу строки
  • .*? соответствует как можно меньшему количеству символов
  • \b соответствует границе слова
  • left соответствует строковому литералу "left"
  • .* соответствует остатку строки
  • $ привязывает конец строки
  • $1 заменяет сопоставленную строку группой 1 в ()

Если вы хотите использовать любое слово (не только "left"), будьте осторожны, чтобы избежать его. Вы можете использовать Pattern.quote(word) для экранирования строки.

1 голос
/ 24 января 2011

Ответ на самом деле /(.*)\Wleft\w/, но он не будет ничего совпадать с

That is, it matches at any position that has a non-word character to the left of it, and a word character to the right of it.
0 голосов
/ 23 января 2011
String result = inputString.replace("(.*?)left.*", "$1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...