^
の利用方法はこちらの記事を参照してください。(?!パターン)
?!
を記述します。パターン(?!パターン)
(?<!...)
ブロックの後ろに式があり、否定先読みのパターンにマッチしないが、後に続く式にマッチした場合にマッチと判定されます。Penguin(?!Book)
文字列 | マッチするか |
---|---|
PenguinArt | 〇 |
PenguinCookie | 〇 |
PenguinBook | × |
PenguinJump | 〇 |
DuckArt | × |
DuckBook | × |
CookPenguinArt | 〇 |
CookPenguinBook | × |
文字列 | マッチするか | 置換後の文字列 |
---|---|---|
PenguinArt | 〇 | HawkArt |
PenguinCookie | 〇 | HawkCookie |
PenguinBook | × | PenguinBook |
PenguinJump | 〇 | HawkJump |
DuckArt | × | DuckArt |
DuckBook | × | DuckBook |
CookPenguinArt | 〇 | CookHawkArt |
CookPenguinBook | × | CookPenguinBook |
&#x(16進数);
以外の &
にマッチさせたいです。この場合、以下の正規表現式を利用します。&(?!#x[0-9a-fA-F]*;)
文字列 | マッチするか | 置換後の文字列 | 補足 |
---|---|---|---|
J | × | J | |
⽈ | × | ⽈ | &#x2F48; |
&#xZZZ; | 〇 | &#xZZZ; | |
ģ | 〇 | &#x123 | 末尾のセミコロンがないためマッチする |
Penguin&Docuk | 〇 | Penguin&Docuk | |
&Opt | 〇 | &Opt | |
#AA09; | × | #AA09; |
&#x(16進数);
&#X(16進数);
&#(10進数);
を除く &
にマッチするパターンは以下の式になります。
&(?!#((x|X)[0-9a-fA-F]*;|[0-9]*;))