まとまりのないブログ

something which something is something

vb.net 正規表現

文字列中にある一部分だけを置き換える

投稿日:

備忘。正規表現を使ってある条件にマッチする場合、その文字列の一部分を別の文字列に置き換える、ということをやってみる。たとえば次のような文字列があったとする。

“00 abcde” “01 fghij”

上記の文字列を、ダブルクォートで囲まれた部分に半角スペースがあれば、その半角スペースをアンダーバーに置き換えるという処理をする。目的の形式としては次のような文字列が作成されればいい。

“00_abcde” “01_fghij”

考え方としては、ダブルクォートで囲まれた部分は、1個のダブルクォートから始まり1個以上の文字列があり、スペースが続き、そして1個以上の文字列があって1個のダブルクォートで終わる、という範囲になる。これによりダブルクォートで囲われた部分が複数あっても識別することができる。下記にサンプルコードを記載する。半角”(” “)”で囲われた部分は置換せずに残すという意味になる。置換後の文字列には$1と$2という部分があるが、これは置換前のカッコを意味しており、その数字はカッコの出現順を意味している。置換対象は半角スペースのみで、それを半角アンダーバーに置き換える、となる。

サンプルコード

Imports System.Text.RegularExpressions

...

searchStr = Regex.Replace(targetString, "("".+?) ([^""]+?"")", "$1_$2")

-vb.net, 正規表現

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

datagridviewのcellselectの挙動

monthcalendarコントロールの表示が環境によって大幅に変わるため、datagridviewでカレンダーを自作したときにcellselectの挙動がどうもおかしかったのでメモ。datagrid …

no image

データグリッドの列の並び順が変わってしまう

datagridviewへdatasetにセットされたテーブルをバインドしたとき、一度目のバインドでは思い通りの列の並び順にならぶ。次に、同じデータグリッドへ列数が少ないテーブルをバインドする。これも …

no image

西暦の日付を和暦の日付に変換してみる

2008/03/15 というような西暦の日付を、 平成20年3月15日(土) といような形式でデータが欲しいので挑戦してみた。他のサイトを見てみるとformat関数で西暦から和暦に変換というのが検索エ …

no image

datagridの選択した行のセルの値を取得する

備忘。.netframeworks2.0のコントロールであるdatagridコントロールで、バインドされたデータ一覧から選択された行のセル値を取得する方法。datagridのSelectedRowsプ …

no image

datagridの列幅の調整ができない

こんなことで嵌るのは私くらいかもしれないけれど一応備忘録 datagridviewのプロパティにある、AllowUserToResizeColumnsの値をtrueに設定しても、実際にデータをバインド …