|
>先ほどはお世話になりました
>以下のマクロでおかしくなります。
>
>replaceallfast "[「『[{《(〔〈<]\\f(おわりに|事例紹介|入院経過|結果考察|
>結果と考察|研究方法|研究結果|背景と目的|対象と方法|対象・方法|方法・結果|結
>果・考察|症例と方法|背景・目的|結論および考察|結果および考察|経過および結果|
>目的|方法|考察|結果|対象|結論|結語|はじめに|まとめ|背景|症例|緒言|文献|成績|
>経過|事例)\\f[」』]}》)〕〉>]" , "【\\1】" , regular;
>
>(|)での数の制限はないとのことでしたが、実行しますと
>
>【】となり\\1の部分は削除されてしまいます。
>なにがいけないのかご教授くださいお願いします。
やってみたところ、こちらでは、固まってしまいました。
調べてみたところ、\fでの区切りを計算するときに文字列の長さが長すぎるのが
原因のようです。
検索文列は、250文字くらいの上限があり、検索ダイアログボックスにこの検索
文字列を入れてみると、
「警告:文字列の上限に達しています」
と出るので、ここで確認できます。
安全なのは、検索ダイアログボックスで確認してみて、この文字数を超えない文
字列を指定するのが安全です。
このケースの場合は、二回に分けてみることをお勧めします。
上限はあるものの、内部的にはこの上限を超えてもある程度できるように緩和し
ていたのですが、\fでの区切りでまだ上限があったため、このケースでは問題で
した。
他の回避策としては、\fを使わずに以下のようにすることです。
\fを使わない方法は、ヘルプの「一般的正規表現互換のタグ付き正規表現」を参
照 してみてください。
こちらは\fで区切る処理を通らないので一応動きました。
ただ、上限は超えているので、二回に分けるのよりは安全ではないです。
replaceallfast "[「『[{《(〔〈<](おわりに|事例紹介|入院経過|結果考察|
結果と考察|研究方法|研究結果|背景と目的|対象と方法|対象・方法|方法・結果|結
果・考察|症例と方法|背景・目的|結論および考察|結果および考察|経過および結果|
目的|方法|考察|結果|対象|結論|結語|はじめに|まとめ|背景|症例|緒言|文献|成績|
経過|事例)[」』]}》)〕〉>]" , "【\\1】" , regular;
|
|