私は2本の弦を持っています
100-2000
と
100-X200-2012
2 番目のハイフンが X で始まる場合は無視すると言って、以下のように両方の文字列に一致する正規表現を記述しようとします。
[0-9]+-[a-zA-Z0-9 \-X]+-[0-9]
しかし、一致しません。基準と一致させる方法がわかりません。
私は2本の弦を持っています
100-2000
と
100-X200-2012
2 番目のハイフンが X で始まる場合は無視すると言って、以下のように両方の文字列に一致する正規表現を記述しようとします。
[0-9]+-[a-zA-Z0-9 \-X]+-[0-9]
しかし、一致しません。基準と一致させる方法がわかりません。
それはこのようなものになることができます
(\d*)(-X\d*|)-(\d{4})
ツールを指定していないので、.NET regex フレーバー (私の個人的なお気に入り) を使用します。
\d+(-[ \w-[_X]][ \w-[_]]+)?-\d+
\d
と同じです[0-9]
.NET では、文字クラスの減算を使用して、文字クラスから特定の要素を削除できます。この場合、文字クラス内にスペースと a \w
([0-9a-zA-Z_] と同じ) を含め、アンダースコアと大文字の X を差し引いています。
別のオプションは、否定先読みを使用することです。
\d+(-(?!X)[ 0-9a-zA-Z]+)?-\d+
私はこれをさらに気に入っていますが、正規表現のすべてのフレーバーがそれをサポートしているわけではありません.
これはどういう意味ですか:
[0-9]+-[^X][a-zA-Z0-9 \-]*-[0-9]+