一太郎では、文書中の文字を検索および置換するときに、正規表現を使って検索文字列を設定することができます。
正規表現を使うことで、より綿密な検索が可能となります。
※本トピック中にたびたび登場する「マッチする」という表現は、「ある正規表現がある文字列に合致すること」の意味で使っています。
例えば、正規表現を使って「a.*」という文字列を検索した場合、「apple」や「application」等の文字列に合致します。 このような場合は、「『a.*』は 『apple』にも『application』にもマッチする」と表現します。 逆に「『a.*』がマッチする文字列」と言った場合は、「apple」や「application」などがその例となります。
◎正規表現が使えるコマンド
[編集-検索]/[編集-置換]/[編集-絞込-実行]/[編集-ジャンプ-文字]
◎一太郎で使える正規表現
- (連結) 「AB」
2つの正規表現(A、B)を並べて表記します。2つの正規表現の間に記号は必要ありません。
正規表現「AB」は、正規表現「A」にマッチする文字列と正規表現「B」にマッチする文字列を連結した文字列にマッチします。検索する文字列 マッチする文字列 マッチしない文字列 ab 文字列"ab" -- a+b 文字列"ab"、"aab"、"aaab"など 文字列"abb"、"abbb"など - .
任意の1文字にマッチします。
検索する文字列 マッチする文字列 マッチしない文字列 . 任意の1文字からなる文字列 -- a.c 文字列"abc"、"a0c"、"aあc"など 文字列"ac" ※検索文字列 . は、単独で使用しないでください。
- * 「A*」
正規表現(A)のうしろに'*'を書きます。
正規表現「A*」は、正規表現「A」にマッチする文字列を0回以上繰り返した文字列にマッチします。検索する文字列 マッチする文字列 マッチしない文字列 a* 文字列"a"、"aa"、"aaa"など 文字列"ab"、"aab"など (a|b)* 文字列"a"、"b"、"aa"、"ab"、"ba"、
"bb"、"aaa"など文字列"a"および"b"以外で
構成されている文字列 - + 「A+」
正規表現(A)のうしろに'+'を書きます。
正規表現「A+」は、正規表現「A」にマッチする文字列を1回以上繰り返した文字列にマッチします。検索する文字列 マッチする文字列 マッチしない文字列 a+ 文字列"a"、"aa"、"aaa"など 文字列"ab"、"aab"など (ab)+ 文字列"ab"、"abab"、"ababab"など -- - ? 「A?」
正規表現(A)のうしろに'?'を書きます。
正規表現「A?」は、正規表現「A」にマッチする文字列または「A」にマッチする文字列を0回または1回繰り返した文字列にマッチします。検索する文字列 マッチする文字列 マッチしない文字列 a? 文字列"a" 文字列"aa"、"ab"、"aaa"、"aab"など ab?c 文字列"ac"、"abc" 文字列"abbc"、"abbbc"など - []
文字と文字の間に'-'を挟んで文字の範囲を表します。文字の範囲または単独の文字を'['、']'の間に複数個並べて書くことができます。複数並べて書いた場合はそれらの範囲の和集合を表します。
'['の直後に'^'を書くと、それ以外の範囲の和集合の補集合を表します。'['の直後以外に'^'を書くことはできません。検索する文字列 マッチする文字列 マッチしない文字列 [a-c] 文字列"a"、"b"、"c" -- [a-ceg-i] 文字列"a"、"b"、"c"、"e"、"g"、"h"、"i" -- [a-zA-Z0-9] アルファベット(a〜z, A〜Z)または
数字(0〜9)1文字からなる文字列-- [^a-zA-Z] アルファベット(a〜z、A〜Z)以外
の文字1文字から始まる文字列-- - ()
正規表現のグループ化を行います。
例えば"ab*"のような正規表現の'*'は直前の'b'を修飾しますが、"ab"を'('と ')'で囲むことによって'*'が"ab"を修飾するようにすることができます。検索する文字列 マッチする文字列 マッチしない文字列 ab* 文字列"a"、"ab"、"abb"、"abbb"など -- (ab)* 文字列"ab"、"abab"、"ababab"など -- a|b+ 文字列"a"、"b"、"bb"、"bbb"など -- (a|b)+ 文字列"a"、"b"、"aa"、"ab"、"ba"、"bb"、
"aaa"など-- - ^
段落の先頭にマッチします。
正規表現の先頭に記述します。検索する文字列 マッチする文字列 マッチしない文字列 ^a 段落の先頭が文字列"a"から始まる個所 -- - $
段落の末尾にマッチします。
正規表現の末尾に記述します。検索する文字列 マッチする文字列 マッチしない文字列 a$ 段落の末尾が文字列"a"で終わる個所 -- - | 「A|B」
2つの正規表現(A, B)の間に'|'を挟みます。
正規表現「A|B」は、正規表現「A」または正規表現「B」にマッチする文字列にマッチします。検索する文字列 マッチする文字列 マッチしない文字列 a|b 文字列"a"、"b" -- a|b+ 文字列"a", "b", "bb", "bbb"など -- - \
特殊文字('.'、'*'、'+'、'?'、'['、']'、'('、')'、'^'、'$'、'|'、)を通常の文字として扱います。
特殊文字を通常の文字としてマッチさせたい場合は\(円記号)のあとに特殊文字を書きます。検索する文字列 マッチする文字列 マッチしない文字列 \. 文字列"." 文字列"."以外の任意の1文字 a\.c 文字列"a.c" 文字列"abc"、"a0c"、"aあc"など - \1/\2/\3
'('と')'で囲まれた正規表現を前から順番に記憶し、\1、\2、\3の順番で取り出します。
\9まで取り出すことができます。検索する文字列 マッチする文字列 マッチしない文字列 (aa)は\1 文字列"aaはaa" --
以上の記号を組み合わせてさらに複雑な正規表現を作ることができます。
- 一太郎([7-9]|1[0-3]|200[4-8])
文字列"一太郎7"、"一太郎8"、"一太郎9"、"一太郎10"、"一太郎11"、"一太郎12"、"一太郎13"、"一太郎2004"、"一太郎2005"、"一太郎2006"、"一太郎2007"、"一太郎2008"にマッチする。
- HTML( [0-9]+(\.[0-9]+)?)?
文字列"HTML"、"HTML 3.2"、"HTML 4.0"、"HTML 4.01"などにマッチする。
■操作
- [編集-検索]/[編集-置換]/[編集-絞込-実行]/[編集-ジャンプ-文字]を選択します。
- [正規表現]を
にします。
- [詳細]をクリックします。
[正規表現詳細設定]ダイアログボックスが表示されます。
- 大文字・小文字、全角・半角、ひらがな・カタカナの表記の違いを吸収し、同じ文字列として検索するかしないかを設定します。
- [OK]をクリックして、[正規表現詳細設定]ダイアログボックスを閉じます。
- [検索文字]*1 に、正規表現を使って検索文字列を入力します。
*1 操作1 で選択したコマンドによって、表示される項目名は異なります。
[メニュー▼]をクリックして表示される一覧から特殊文字を選択して入力することもできます。 - [文書頭から検索]*2 をクリックして、検索/置換/絞込/ジャンプを実行します。
*2 操作1 で選択したコマンドによって、表示されるボタン名は異なります。
▼注意
- 文書末方向に検索を行って文字列にマッチさせ、その直後に文書頭方向に変更して検索を行うと同じ文字列にマッチしてしまいます。その逆の場合も同じです。
- 改行位置(改行コード)にマッチさせる正規表現はありません。