[スレッド全体]

[8160] Re3:ある連続した奇数個の文字列を偶数個に置換したいのですが…… 
2016/7/30 (土) 05:50:04 通りすがれ
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36 OPR/39.0.2256.42 (Edition beta)
 もかさん、返信と助言をありがとうございます。
 すみません、何がしたいのかを具体例を書くべきでした。ちょっと混乱気味だったのも申し訳ありませんでした。

 目的としているのは、複数のテキストファイル中にある『三点リーダ(…)』の調整です。
 小説なんかでは三点リーダは二個セットで使うのが正しいようなので、奇数個の連続した三点リーダを、偶数個の連続した三点リーダに置き換えたいのです。

 例えば、
『…なるほど?』
 のように一行中に一箇所しかない該当箇所がない場合や、一行中に複数の該当箇所がある場合もあります。

 これらを手作業で修正するのは非常に困難かつ時間が掛かる上に、確実性もあやふやになりそうなので、正規表現を使って置換できれば、と考えたのですが……。
 他の簡単な置換作業ではヘルプを見ながらそれっぽい動作を実現できたのですが、今回質問した目的は私の覚束ない知識とスキルでは難しいので、どなたかに知恵を拝借しようと思った次第です。

 お手数をおかけして申し訳ありませんが、よろしくお願い致します。


[8161] Re4:ある連続した奇数個の文字列を偶数個に置換したいのですが…… 
2016/7/30 (土) 06:20:21 もか
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
※午前5時台に返信があると思わなかったので、元返信を一部修正しています。
了解しました。三点リーダーを置換する場合も書いておきます。
ここでは 置換前 → 置換後 という意味の矢印です。

三点リーダーなら3つめの方法、全置換3回で何とかなると思います。

…… → *
… → *
* → ……

これで、奇数の場合は1つ…を増やして偶数個になります。
「*」は文章中に出ない文字列なら何でも構いません。
「※目印」とか「xxxx」とかでもいいです。

奇数個の三点リーダーを検索、強調表示、一度に置換したいなら、以下の正規表現をコピペして使ってください。
否定戻り読み、否定先読みを使っています。前後が…でないという意味です。
置換後の$&はマッチ文字列全体を表します。

(?<!…)(……)*(…)(?!…) → $&…

なお、ご存知かもしれませんが、小説の三点リーダーのチェックは、「ノベルチェッカー」という複数あるサイトで確認ができますので、それを使うのも便利です。
サクラでは上の呪文を正規表現キーワードに//kで囲って登録すると、書きながらのチェックもできます。
小説用タイプ別設定
http://sakura.qp.land.to/?Customize%2F%C5%EA%B9%C6%2F84
というのでも、確認できるはずです。


[8162] Re5:ある連続した奇数個の文字列を偶数個に置換したいのですが…… 
2016/7/30 (土) 19:32:38 もか
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
> …… → *
> … → *
> * → ……
2chに書いてあったように、
…… → …
… → ……
で十分だった。。。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81