Как я могу по желанию сопоставить начало ^
или конец $
строки в регулярном выражении.Регулярное выражение опциональное совпадение начало/конец строки
Например:
/(?<=[\s\^])/
не соответствует начинается с символа пробела или начала строки.
В соответствии с запросом моя проблема была в PHP, соответствующем следующему.
$str = '**bold** **bold** **bold**';
echo preg_replace('/(?<=\s|^)\*\*(.+?)\*\*(?=\s|$)/', '<strong>\\1</strong>', $str);
Мои краевые кейсы были выделены жирным шрифтом в начале и конце строки, не были согласованы. Некоторые краевые случаи, с которыми я сталкивался с другими вариантами, были сопоставлены в строках, сопоставляя цепочки звездочек и бесчисленные другие проблемы.
echo preg_replace('/(?<=^|\s|\>)[\*]{2,}(?=[^\s\*])(.+?)(?<=[^\s\*])[\*]{2,}(?=\s|\<|$)/', '<strong>\\1</strong>', $str);
Если вы их удалите, то они не являются обязательными. –
Вы ищете эти функции http://www.regular-expressions.info/lookaround.html – eandersson