。?!の後に改行を入れたいNo.06621
styth さん 11/06/02 20:09
 
 replaceallfast "(.+?)(。|?|!)([^\n]+?)", "\\1\\2\\n\\3", fuzzy;
 これを実行すると、

(実行前)
あ?い。う!え?

(実行後)
あ?
い。う!
え?

 になってしまいます。


あ?
い。
う!
え?

 となる様にするにはどう修正すれば良いんでしょうか?
 よろしくお願いします。

[ ]
RE:06621 。?!の後に改行を入れたいNo.06622
アルビレオ さん 11/06/02 21:26
 
ユーザーのアルビレオです。

連続置換を行う場合、マッチした文字列の末尾が次の検索開始位置になります。
そのため「あ?い」にマッチすると続きの検索は「。う!え?」に対して行われ
るので次の改行位置は「!」の後ろになります。

「後方一致指定」を使って

 replaceallfast "(.+?)(。|?|!)(?[^\n]+)", "\\1\\2\\n", fuzzy;

にすればいけるんじゃないでしょうか。(テストしてませんが)

[ ]
RE:06621 。?!の後に改行を入れたいNo.06623
Iranoan さん 11/06/02 21:35
 
 styth さん今日は、Iranoan です。
>  replaceallfast "(.+?)(。|?|!)([^\n]+?)", "\\1\\2\\n\\3", fuzzy;
<snip>
> あ?
> い。
> う!
> え?
>
>  となる様にするにはどう修正すれば良いんでしょうか?
//------------------------------------------------------------
replaceallfast "(.+?)(。|?|!)(?=.)", "\\1\\2\\n", fuzzy;

[ ]
RE:06623 。?!の後に改行を入れたいNo.06624
Iranoan さん 11/06/02 21:40
 
 今日は、Iranoan です。
 自己フォローです。
> replaceallfast "(.+?)(。|?|!)(?=.)", "\\1\\2\\n", fuzzy;
>                         ^^^
自動実行マクロで半角に変換してしまいました。「?」か「\\?」のどちらか
にして下さい。

[ ]
RE:06624 。?!の後に改行を入れたいNo.06625
styth さん 11/06/02 22:23
 
 ありがとうございました。うまくいきました。

[ ]
RE:06622 。?!の後に改行を入れたいNo.06626
styth さん 11/06/02 22:24
 
replaceallfast "(.+?)(。|?|!)(?=[^\n]+)", "\\1\\2\\n", fuzzy;
で、うまくいきました。ありがとうございました。

[ ]