&
which will then render to:のようなものについて話しているのですが&
、実際にレンダリングする必要があるのは&
. これで、エンティティを一致させる方法を尋ねましたが、正規表現では実際には不可能または現実的ではないようです。では、二重エンティティを一致させる最良の方法は何ですか?
編集:これは良い方法ですか?.replace(/&(?=#?x?[0-9a-z]+);/i, '&');
(私はジャバスクリプトを使用しています)
&
which will then render to:のようなものについて話しているのですが&
、実際にレンダリングする必要があるのは&
. これで、エンティティを一致させる方法を尋ねましたが、正規表現では実際には不可能または現実的ではないようです。では、二重エンティティを一致させる最良の方法は何ですか?
編集:これは良い方法ですか?.replace(/&(?=#?x?[0-9a-z]+);/i, '&');
(私はジャバスクリプトを使用しています)
私は一緒に行きます
pattern &([a-zA-Z0-9]+?;)\1
replacement &$1
ダブルアンプだけを交換するには、または:
pattern &([#a-zA-Z0-9]+?;)
編集:
あなたのパターン
/&(?=#?x?[0-9a-z]+);/i
私にもよさそうです。
注: これらはどれも信頼できるものではありません
最初にデータを正規化します。エンコーディングについて知っていることは何でも使用して、それらをデコードして、文字/データの一部が可能なエンコーディングが1つしかない形式に戻します。その後、この正規化されたデータを正規化されたパターンと照合します。
おそらく:
&[a-zA-Z]+;
フールプルーフではありませんが。