よく「先頭が○だったらA処理、×だったらB処理」みたいな条件分岐がある。
そんなときに便利なのが、
String.StartsWith
、String.EndsWith
var value = "ABC123";
if (value.StartsWith("A"))
{
Console.WriteLine("先頭がA");
}
if (value.EndsWith("3"))
{
Console.WriteLine("末尾が3");
}
単純に「先頭がこの文字列なら」と指定できる場合は、上記の方法で対処可能だ。
ただ、先頭が英字のみとか、末尾が数値のみというようなチェックの場合は、StartsWith、EndsWithが使えない。
そんなときは「正規表現」を使う。
using System.Text.RegularExpressions;
var value = "ABC123";
if (Regex.IsMatch(value, @"^[a-zA-Z]"))
{
Console.WriteLine("先頭が英字");
}
if (Regex.IsMatch(value, @"[0-9]$"))
{
Console.WriteLine("末尾が数字");
}
文字列の先頭を表すのが「^」、末尾を表すのが「$」
[a-zA-Z]や[0-9]は正規表現の定番で、「a~z、またはA~Z」、「0~9」よいう意味。
「○が含まれる」という条件の場合は、
value.Contains(“12”)
とかRegex.IsMatch(value, @”[0-9]”)
みたいな書き方もできる。ちなみに正規表現のパターンの頭につけている「@」は、逐語的文字列リテラルと呼ばれるもの。
これをつける事によって、二重引用符で囲まれた文字列のエスケープシーケンス(\nとか\tとか)を処理せずそのまま解釈してくれる便利なヤツ。
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿