説明
スペースで区切られた値のリストが与えられた£1.00 £2.00 £2.00 £1.00 £1.00
場合、負の先読みを使用して後方参照値を見つけることで重複があるかどうかを検証できます。$
また、複数の通貨タイプを使用できるように、文字クラスに and 記号を追加しました。これは、本質的に出力を一意にする各値の最後のインスタンスを返します。
正規表現:(?:\s|^)((?:£|$|\xC2|\xA3)\d+\.\d{1,2})(?=\s|$)(?!.*?\s\1(?=\s|$))

入力:£1.00 £2.00 £2.00 £1.00 £1.00
例へのリンク
$matches Array:
(
[0] => Array
(
[0] => £2.00
[1] => £1.00
)
[1] => Array
(
[0] => £2.00
[1] => £1.00
)
)
したがって、このアイデアをさらに一歩進めて、テスト式を含めて<strong class="bigprice">(.+?)</strong>
の重複値を防ぐことができます(.+?)
。これはhtmlのように見えるので、次の開き山括弧までのすべての文字に.+?
一致するすべての文字に一致するすべての文字に一致するものを置き換えます[^<]*
正規表現:(?:<strong\s(?=[^>]*class="bigprice")[^>]*>)\s*((?:£|$|\xC2|\xA3)\d+\.\d{1,2})\s*<\/strong>(?!.*?(?:<strong\s(?=[^>]*class="bigprice")[^>]*>)\s*\1\s*<\/strong>)

入力:<strong class="bigprice">£1.00</strong><strong class="bigprice">£2.00</strong><strong class="bigprice">£1.00</strong>
例へのリンク
$matches Array:
(
[0] => Array
(
[0] => <strong class="bigprice">£2.00</strong>
[1] => <strong class="bigprice">£1.00</strong>
)
[1] => Array
(
[0] => £2.00
[1] => £1.00
)
)
概要
どちらの場合も、入力テキストに重複する値が見つかった場合、式は失敗します。