正規表現で特定の一致を無視することはできますか?例えば正規表現での一致を除外
:
私は次の正規表現があります
^[0-9]{2}$
しかし、私は、特定の文字列に一致するのは、 "12" を言わせたくありません。
私はとのような正規表現の演算子を探していますが、.NET/C#ではこれを見つけることができませんでした。
正規表現自体でこれを行うことをお勧めします。 アドバイスやご提案はありますか?
正規表現で特定の一致を無視することはできますか?例えば正規表現での一致を除外
:
私は次の正規表現があります
^[0-9]{2}$
しかし、私は、特定の文字列に一致するのは、 "12" を言わせたくありません。
私はとのような正規表現の演算子を探していますが、.NET/C#ではこれを見つけることができませんでした。
正規表現自体でこれを行うことをお勧めします。 アドバイスやご提案はありますか?
^[0-9]{2}(?<!12)$
またはリバース:
^(?!12)[0-9]{2}$
このの具体的なの場合、特定の一致を1つ否定することに注意してください簡単でした。時々そうではなく、時にはそれは不可能であり、正規表現に依存します。
あなたが好きなものをやって方がいいでしょう:
if (Regex.IsMatch(MyString, @"^[0-9]{2}$") && MyString != "12")
{
// Do something
}
正規表現は非常に強力ですが、それらを使用しないようにするときには、知っておくことが重要です:)
あなたはこの醜い正規表現を使用することができます
^([02-9][0-9] | [1][013-9])$
平易な英語に翻訳し、それが「1
に起動しない2桁の文字列、または1
に起動しますが、ない2桁の文字列を意味し、その第2の数字として2
を持っていない」と述べている。
優れた!これはどのように呼び出されますか?私はそれについてもっと詳しく知りたいです。:) – Meryovi
[Negative lookbehind&lookaheads @ regularexpressions.info](http://www.regular-expressions.info/lookaround.html) – Wrikken
ありがとう!これは非常に便利です。 – Meryovi