投稿

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のコード上にコードレンズが表示されるようになります。

Paint.NETでWMFファイルを開き保存する

イメージ
Paint.NET で WMF (Windows Meta File) を開くには、以下のプラグインをインストールします。 Paint.NETでWMFファイルを開くためのプラグインのインストール ※作業前に Paint.NET を閉じておくのが望ましい。 以下のサイトの Download WMF Paint.NET Plugin よりプラグインをダウンロード。 https://forums.getpaint.net/topic/17950-wmf-windows-metafile-file-type-plugin-v131/ ダウンロードした圧縮ファイルを解凍する。 解凍すると 3 つの DLL (WMF2WPF.dll, WMFFileType.dll, WPFGDI.dll) があるので、それらを Paint.NET のインストールフォルダにコピーする(管理者の権限が必要)。 C:\Program Files\Paint.NET\FileTypes(Windows 11 の場合) Paint.NETを起動する。 WMFファイルの保存 「名前を付けて保存」のダイアログにあるファイルの種類には「WMF」がなく保存できないかと思われますが、ファイル名に .wmf という拡張子を付けることで WMF ファイルを保存することができます。 WMFファイルとは WMFファイルは、Windows向けのベクター画像フォーマットです。軽量かつ高い互換性を持つのが特徴ですが、現在ではSVGやPNGの方が一般的ではあります。Windows標準ソフト(ペイントやPowerPoint)でも扱えます。

Visual Studioでクラスダイアグラムが表示されない

イメージ
Visual Studio のクラスダイアグラムとは Visual Studio のクラスダイアグラムは、プロジェクト内のコードから自動的にクラスダイアグラムを生成したり、ダイアグラム上でクラスや関係を編集してコードに反映させることが可能です。 クラス図を作成する時にも大いに役に立つでしょう。 クラスダイアグラムの追加方法 ソリューション エクスプローラーで、プロジェクトノードを右クリックし、 [追加] > [新しい項目] を選択します。 「全般」を展開し、テンプレートの一覧から [クラス ダイアグラム] を選択します。 クラスダイアグラムがテンプレートに無い場合 クラスデザイナーコンポーネントをインストールします。 Visual Studio インストーラーを開く。 オプションの [変更] ボタンをクリック。 [個々のコンポーネント] タブを選択し、 [コード ツール] カテゴリまで下にスクロールして、[クラス デザイナー] にチェックを入れる。 [変更] ボタンを押下。

Mac ATOK で変換がバカになり変換候補に表示されなくなる

イメージ
ATOKで、変換候補に候補が出てこなくなってしまう現象に悩まされていました。いろいろと調べても解決策はなかったのですが、長く使うことで誤変換が蓄積され、ATOKがバカになっている可能性があるとのことでクリアしました。 ATOKの学習情報のクリア ATOKには変換用の辞書をいくつかセットできますが、今回は「標準辞書」の学習情報をクリアしました。 ATOKの環境設定を開く。これはメニューバーから開けますが、日本語入力になっていないと開けません。 「辞書・学習」タブから標準辞書を選択し、「詳細設定」ボタンを押下。 ユーザー辞書設定に「学習情報のクリア」があるのでクリック。 学習情報のクリアを行うことで、出てこなくなっていた変換候補が出てくるようになりました。

fablic.js のダウンロード方法

イメージ
fabric.js とは canvas を操作する JavaScript ライブラリ。このライブラリは、ネイティブの Canvas API 呼び出しを抽象化することで canvas に描画されるオブジェクトを操作することができます。 fabric.js のダウンロード Fabric.js の公式サイト を開く。 画面下にある「Download the latest version」で右クリック。 [別名でリンク先を保存]をクリックすると、ミニファイされた JS ファイルがダウンロードできます。 fabric.js が得意なこと オブジェクトの操作(単純な図形、画像、ベクトル図形、テキストの移動、回転、サイズ変更)。 画像フィルター(内蔵フィルターは少ないが、自分でも定義できる)。 キャンバス上に多数のオブジェクトを表示する。 リッチテキストの表示(複数行、テキスト配置、テキスト装飾、背景、シャドウ、アウトライン)。 SVG の解析とキャンバスへの表示。 Node.js を介して、SVG や、Fabric がサポートするコンテンツ(単純な図形、ベクトル図形、画像、テキスト)をサーバー上でレンダリングする。 単純なシェイプ、ベクターシェイプ、イメージ、テキストのいずれかをアニメーションさせる。 非透過コンテンツを介してオブジェクトをつかむ。 自由な描画(数種類のブラシが内蔵されており、自分でも定義できる)。 fabric.js が得意ではないこと オブジェクトの交差を検知する(ピクセル単位やカーブ単位など) チャート(チャート抽象化の作成は可能) スプライトベースのアニメーション(スプライトを抽象化することは可能) 3D オブジェクトの変形(three.js のような 3D ライブラリを使うのがベスト)