Regex - Соответствуйте шаблону перед символом

Два мозга думают лучше, чем один

Я твердо верю, что парное программирование является фактором номер один, когда речь идет о повышении качества кода и производительности программирования. К сожалению, это также весьма спорным для управления, который считает, что «чем больше рук => больше кода => $$$!»

14
задан Jonathan Leffler 26 October 2013 в 23:44
поделиться

4 ответа

30
ответ дан 1 December 2019 в 05:58
поделиться

Что вы хотите называется утверждением с упреждением нулевой ширины. Вы делаете:

(Match this and capture)(?=before this)

В вашем случае это будет:

([A-Z^]{1,3})(?==)
30
ответ дан 1 December 2019 в 05:58
поделиться

Следующее сгруппирует все до "=" и все после.

([^=]*)=([^=]*)

читается примерно так:

соответствует любому количеству символов, кроме "=", за которым следует a "=", затем любое количество символов, кроме "=".

4
ответ дан 1 December 2019 в 05:58
поделиться

You can also put the equals sign in a non-capturing parans with (?: ... )

([ADM]{1,3})(?:=)

It's been a bit since I did this chapter of the book but I think that since you need both parts of the expression anyway, I did a split on the = resulting in myArray[0] == M, myArray[1] == A

0
ответ дан 1 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: