単一の正規表現が文字列全体、文字列の先頭、または C# の一部に一致するかどうかを判断する方法を探しています。
Matcher
Java では、オブジェクトを構築し、メソッドmatches()
を使用して、入力全体lookingAt()
に一致するかどうか、入力の開始に一致するかどうか、文字find()
列内からの一致があるかどうかを確認できます。 .
.NET では、Match.Success
一致するものがあるかどうかを確認Match.Index
しMatch.Length
、上記の条件を確認するために使用できます。
問題は、より小さな一致が見つかった場合、入力全体を一致させようとしないことです。たとえば、入力「1234」が Regex@"\d{2}|\d{4}"
に提示された場合、最初の 2 桁と一致します。
そのような場合、入力全体をテストするパターンを使用して別Regex
のパターンを作成し、次に別のパターン@"^(\d{2}|\d{4})$"
をテストして最初と一致するかどうかを確認する必要があります。
Regex
この理由で別の正規表現を作成 (およびコンパイル) する必要がないように、同じクラスに入力全体の一致を優先するように指示する方法はありませんか?
編集:質問はパターンに関するものではなく、私が何を意味するかを示すための単なる例です。