トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

2-19 文字数に応じた指定文字を置換

正規表現パズル

置換を使って、
各行の文字列に対して、
6文字以上なら、3文字目から3文字をABCに置換する。
5文字なら、4文字目から2文字をABCに置換する。
4文字なら、4文字目をABCに置換する。
3文字以下なら、置換しない。

置換前


置換後


対象データ

1
12
123
1234
12345
123456
1234567
12345678
123456789


正規表現

(?<=^.{3}).{1,3}
を
ABC
に置換

別解

^(.{3}).{1,3}
を
\1ABC
に置換


解説

SQLServerのstuff関数を、Oracleの正規表現で模倣しようとしたのが元ネタです。
How I work with MS-SQL function in oracle(英語)
SQL Server 2005 Books Online STUFF (Transact-SQL)

量指定子で、1以上3以下のマッチを指定してます。