投稿

6月, 2025の投稿を表示しています

C#の正規表現で郵便番号を抽出する

C#の正規表現で数字を判定 C#の正規表現で数字を判定する時、「¥d」というパターンが使えますが、これをそのまま使うと意図しない文字列がマッチすることがあります。 たとえば、以下のようなコードで文字列の中から郵便番号を抽出しようとするとおそらくおかしな動作になるでしょう。 var valZen = "〒100-0001 東京都千代田区千代田"; var matches = Regex.Matches(valZen, @"\d\d\d-\d\d\d\d"); foreach (Match match in matches) { // 結果:100-0001 Console.WriteLine(match.Value); } 「¥d」というパターンは確かに数字にマッチするパターンではあるのですが、これは 全角と半角を区別しません 。 Regex.IsMatchメソッド 正規表現で半角数字のみを判定する Regex.Matchesの第三引数に RegexOptions.ECMAScript を指定すれば全角は無視されます。 var matches = Regex.Matches(valZen, @"\d\d\d-\d\d\d\d", RegexOptions.ECMAScript); 正規表現で郵便番号を抽出するパターン 「¥d」をまとめて指定する書き方もあります。 // ハイフンがついた郵便番号を抽出する string patternWithHyphen = @"\d{3}-\d{4}"; // ハイフンの有無にかかわらず郵便番号っぽいものを抽出する string patternAllowNoHyphen = @"\d{3}-?\d{4}";

C#で「CS1525 '{' は無効です」を解消する

イメージ
Visual Studioのクイックウォッチで日付型の変数の値を変更しようとする時に、変数の値をそのまま変更するとエラーが出て変更できません。 CS1525 '{' は無効です コンパイラエラーCS1525(Invalid expression term)は、式の中で不正な記号やキーワードが使われたときに発生します。 入力した値が日付型として識別されておらず不正な記号として扱われてしまっています。 クイックウォッチで日付を変更する 変更したい変数の値に、new DateTime() として新たに型を指定した値を入力します。 そうすれば日付型の変数の値も途中で変更可能です。

Visual Studio 2022で参照(コードレンズ)が表示されない

イメージ
エディターの上部に小さな文字で表示される「参照数」や「テスト結果」などのコードレンズ(CodeLens)が表示されなくなることがあります。 コードレンズとは? コードレンズとは、Visual Studioのエディター内でクラスやメソッドなどに関する情報を直接表示してくれる機能です。たとえば、以下のような情報がコードの上に表示されます。 参照している場所(何箇所で使われているか) 作成者や最終変更者(ソース管理と連携時) 関連する単体テストの結果 コミット履歴(Gitなどのバージョン管理と連携) コードレンズを有効にする手順(Visual Studio 2022) ① Visual Studioを起動する プロジェクトを開くのでもいいです。 ② メニューから「ツール」→「オプション」を開く メニューバーの上部から 「ツール」 → 「オプション(Options)」 を選択します。 ③ 「テキスト エディター」→「CodeLens」を選択 ④ 「CodeLensを有効にする」にチェックを入れる 「CodeLensを有効にする(Enable CodeLens)」のチェックボックスにチェックを入れます。 ⑤ [OK] を押して設定を保存 Communityエディションでは一部機能が制限されていることがあります。 設定後、Visual Studioのコード上にコードレンズが表示されるようになります。