Как я могу захватить содержимое одной или нескольких строк с помощью регулярных выражений? - PullRequest
0 голосов
/ 30 июня 2009

Допустим, у меня есть следующие три строки:

(section1) {материал может быть любым символом, я хочу взять все это}

(section1) (section2) {материал может быть любым символом, я хочу взять все это}

(section1) (section2) (section3) {материал может быть любым символом, я хочу взять все это}

Таким образом, если применить выражение к моим выражениям, в первый раз я получу:

section1

Материал может быть любым персонажем, я хочу взять все это

если применить выражение к моим выражениям, за секунду я получу:

section1

section2

Материал может быть любым персонажем, я хочу взять все это

и если применить выражение к моим выражениям, для третьего я получу:

section1

section2

section3

Материал может быть любым персонажем, я хочу взять все это

У меня есть следующее регулярное выражение:

* * Тысяча сорок четыре ((? * +1045 * +.)) + {? * 1 046 *. +}

Итак, поищите внутренние скобки и повторите, а затем то, что находится внутри фигурных скобок. Это не похоже на работу Любая подсказка? Это всегда была моя Ахиллесова пята.

Ответы [ 3 ]

2 голосов
/ 30 июня 2009
(?<section>\(.+?\))+?(?<term>\{.+\})

, вероятно, ближе к тому, что вы ищете.

Это будет соответствовать сколько у вас (раздел N ) сегментов вместе с {term}

0 голосов
/ 30 июня 2009

При написании регулярного выражения следует помнить одну вещь: фигурные скобки {} содержат числа, а не подстановочные знаки.

 <regex>{3}  //will match three exactly
 <regex>{0,3} // will match up to and including three
 <regex>{3,} // will match three or more

также неплохо иметь утилиту для проверки ваших строк при попытке составить шаблон. вот один такой онлайн-инструмент

0 голосов
/ 30 июня 2009

Я не очень хорошо понял, что вы хотели, но я все равно постараюсь ответить

(\(section1\)(\(section2\)(\(section3\))?)?)(.*)

Это будет соответствовать (и захватывать) (раздел1), за которым следует что-то еще (или ничего), и, возможно, после него (раздел2), за которым, в свою очередь, может следовать (раздел3)

Я почти уверен, что это не то, что вам нужно, но, по крайней мере, предложит вам лучше описать ваш вопрос: -)

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