Подтвердить что ты не робот

Regex соответствует не началу строки

У меня есть следующий тег XML

<list message="2 < 3">

Я хочу заменить < в тексте на &lt;

Требуется регулярное выражение для соответствия <, если оно не появляется в начале строки.

4b9b3361

Ответ 1

[^<]+= один или несколько символов, которые не являются <

<= < вы ищете

заменить:

([^<]+)<

с:

$1&lt;

Ответ 3

Точка. означает "любое значение"

.<

В любом случае, я полагаю, вы тоже не хотите пустоты. Если это так, то

\S\s*<

Ответ 4

Это даст вам "<" после первого экземпляра:

[^<]<

Ответ 5

Попробуйте следующее:

(?<="[^"]*)<(?=[^"]*")

Ответ 6

Метод @duncan работает нормально, если вы просто хотите его заменить, но не соответствует <. и все lookbehind не будут работать, если вы используете javascript. потому что javascript не поддерживает lookbehind, если вы не включите флаг --harmony в nodejs или экспериментальные функции javascript в chrome. Но здесь будет работать lookahead, а именно: /(?!^)</ будет соответствовать <, который не находится в начале строки. и замена будет: '<list message="2 < 3">'.replace(/(?!^)</, '&lt;')