Ответ 1
Попробуйте следующее:
<(?!a|em|strong)
Как бы я сделал регулярное выражение для соответствия символу '<' не сопровождаемый ('a' или 'em' или 'strong')
поэтому <hello
и <string
будут совпадать, но <strong
не будет.
UPDATE: Btw, язык, который я использую, - это javascript
Попробуйте следующее:
<(?!a|em|strong)
Вы используете отрицательный lookahead, простейшая форма для которой (для этой проблемы):
<(?!a|em|strong)
Единственная проблема заключается в том, что он игнорирует <applet>
. Способ справиться с этим заключается в использовании \b
, который является выражением нулевой ширины (что означает, что он не фиксирует ни один из входных данных), который соответствует слову для перехода не к слову или не к слову. Символы Word [0-9a-zA-Z_]
. Итак:
<(?!(a|em|strong)\b)
Если ваш механизм регулярных выражений поддерживает его, используйте отрицательное выражение для прогноза: это выглядит в строке и успешно, если оно не соответствует; однако он не потребляет никаких данных. Таким образом, вы хотите /<(?!(?:a|em|strong)\b)/
: сопоставить a <
, а затем преуспеть, если нет a
, em
или strong
, за которым следует разрыв слова, \b
.
Хотя ответ Andrew явно превосходит, раньше, я также получил его для работы с [^(?:a|em|strong)]
.