RegEx, чтобы выбрать все между двумя символами? - PullRequest
25 голосов
/ 26 июля 2010

Я пытаюсь написать регулярное выражение, которое выбирает все между двумя символами.

Например, когда регулярное выражение встречает '§' Я хочу, чтобы оно выбирало все после знака '§', вплоть доуказать, что регулярное выражение встречает ';'.Я пытался смотреть назад и смотреть вперед, но они на самом деле не работают.

Так, например, " § 1-2 bla; " должен вернуть " 1-2 bla".

Любая помощь будет принята с благодарностью!1012 *

Ответы [ 4 ]

47 голосов
/ 26 июля 2010

Как насчет

"§([^;]*);"

Выбранные символы от § до ; доступны как группа совпадений 1.

26 голосов
/ 26 июля 2010

Используйте это регулярное выражение

(?<=§).*?(?=;)
4 голосов
/ 26 июля 2010

Для простого случая это должно сделать:

§(.*);

Возможно, потребуется изменить, если вы не хотите разрешать вложение:

§(.*?);
3 голосов
/ 19 июля 2018

Если у вас есть несколько § (пример символа), используйте: §([^§]*)§

Он будет игнорировать все между двумя § и брать только то, что находится между двумя специальными символами, поэтому, если у вас есть что-то вроде §What§ kind of §bear§ is best,он выдаст: §what§ , §bear§

Что происходит?давайте разберем выражение § затем ([^ §] *), затем §

  1. 1- совпадение, § char
  2. 2- совпадение с чем угодно, кроме § [^§] 0 или более раз *
  3. match § char

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...