0
#\b^([0-9]{7,8}(\s/[0-9]{4})?|Charges|[\-]{3}|UNIVERSAL\sCONNECTIVITY-DCS|FEDERAL\sREGULATORY\sFEE-DCS|PROPERTY\sTAX\sALLOTMENT-DCS|ADMINISTRATIVE\sEXPENSE\sFEE-DCS)\b#m

非常に...変数のデータのセットを照合しようとしていますが、一生の間、3つのダッシュ文字列を照合する方法を決定できません。

問題の正規表現は

[\-]{3}

私はそれを機能させるために100の組み合わせを試しましたが、私にとっては3つのダッシュとは一致しません。

何か案は?= /

4

3 に答える 3

1

1つの文字に文字クラスは必要ありません。

-{3}

またはより単純な

---

うまくいきます。

とにかくパターンは機能するはずです。実際のダッシュがあり、ダッシュのように見える他の文字(emダッシュなど)がないかどうかを確認してください。

于 2012-08-10T13:53:59.847 に答える
0

3つのダッシュのRegExは正常に機能しますが、残りの大きなRegExには失敗しているものがあります。

証拠:

$x = 'mi---hai';
echo preg_replace('/[\-]{3}/', '', $x); // echoes 'mihai'

ところで、ダッシュを一致させようとしていて、その前に文字クラスに他の文字がない場合は、ダッシュをエスケープする必要はありません。[-]{3}うまく機能[-abc]し、a、b、c、またはダッシュに一致します。

于 2012-08-10T13:54:35.857 に答える
0

ああ!私は解決策を見つけました!-は単語文字とは見なされないため、\bが原因でした。おっと!

于 2012-08-10T14:05:25.707 に答える