文字列に「-A」の後に数字が続く文字が含まれているかどうかを確認するにはどうすればよいですか?
例: thisIsaString-A21 = はい、「-A」の後に数字が続きます
例: thisIsaNotherString-AB21 = いいえ、「-A」の後に数字が続くものは含まれません
それは正規表現で行うことができます:
if (Regex.IsMatch(s, @"-A\d")) { ... }
は\d
任意の数字に一致します。
オンラインでの動作を確認してください: ideone
if(Regex.IsMatch("thisIsaString-A21", "-A\\d+"))
{
//code to execute
}
-A[num] ビットを実際に抽出したい場合は、次のようにします。
var m = Regex.Match("thisIsaString-A21", "-A\\d+"));
if(m.Success)
{
Console.WriteLine(m.Groups[0].Value);
//prints '-A21'
}
A[num] ビットを単独で抽出する必要がある場合、または数値だけを抽出する必要がある場合など、他にもできることがあります。
var m = Regex.Match("thisIsaString-A21", "(?<=-A)\\d+");
//now m.Groups[0].Value contains just '21'
または、私の最初の提案のように、「A21」が必要な場合:
var m = Regex.Match("thisIsaString-A21", "(?<=-)A\\d+");
//now m.Groups[0].Value contains 'A21'
(?<=)
これらの最後の 2 つを実現する方法は他にもあります。名前が示すように、出力グループをクリーンに保つため、非キャプチャ グループが気に入っています。