はじめに
業務でvb.netにより業務系アプリを開発しており、
躓いた個所を記録として残すため、ここに書きました。
やりたかったこと
データ出力する文章中に[]が含まれていたら、[]の前に改行をいれる
(前提として、出力しようとしているデータは、文字列の先頭に[]がついた文章が結合されている)
以下のコードを記載し、文章として取得したデータ内の「[」の前に改行を入れるように正規表現を設定した。
Regex.Replace(Eval("文章").ToString, "(?!^)[", "<br />[")
実行したところ、以下の例外が発生!
調べたところ、「[」はメタ文字というもので、「]」とセットで使用しなければいけないことがわかった。
そして、「[」を一つの文字として扱うためには、前に「¥」をつける必要があることがわかり、以下のように修正したところ、想定通りの動きになった!!
Regex.Replace(Eval("文章").ToString, "(?!^)[", "<br />[")
おわりに
メタ文字は他にも存在しており、今回のように正規表現内に設定する時は、注意したいと思う