У меня довольно трудное время, когда я склоняюсь к регулярному выражению, особенно к более сложным формулам.Regexp равномерное число обратных косых черт (PHP)
В настоящее время я пишу свой собственный язык разметки, и я в тупике, убегая. Я хочу, чтобы каждый специальный символ был «escapable», то есть, если *bold*
дал бы мне <b>bold</b>
, то \*bold\*
должен оставить его как есть, поэтому я могу сделать зачистку обратных косых черт позже, но я не могу думать о регулярном выражении передайте эту идею.
Как я могу выбрать три группы:
- Left звездочку, если число или ОЭ предшествующее ему даже;
- Контент между звездочками;
- Правая звездочка, если число BSES, предшествующих ей, равно;
с одним регулярным выражением? Мне нужно, чтобы он соответствовал PHP preg_replace
.
Этот \\*(\*)\S(.)+?\S\\*(\*)
будет выбирать как звездочки, так и контент как три группы, но это не проверяет «четность» и прочее.
UPDATE:
Второй пункт был изменен, чтобы лучше проиллюстрировать то, что я имел в виду (не изменяйте его больше, потому что изменение, которое было сделано полностью пропустил точку).
Плюс, если это упростит ситуацию, я могу сначала разобрать любой двойной обратный слэш на какой-то другой символ, поэтому нужно только проверить ОДИН косую черту перед звездочкой.
Вы имеете в виду `\\ * bold \\ *` производит `* bold *`? – kennytm 2010-12-06 09:17:02
Это больше похоже на работу для * parser *, а не на RegEx. – deceze 2010-12-06 09:17:59