行末単語の削除方法No.14618
john_j_rambo さん 03/05/09 07:11
 
是非とも教えてください。


ABCD/EFGH/IJKL/MMMM/NNNN/qwer
ABCD/EFGH/IJKL/MMMM/NNNN/asdf
ABCD/EFGH/IJKL/OOOO/PPPP/zxcv
ABCD/EFGH/IJKL/QQQQ/RRRR/poui

これらの行の、5番目の / 以降の単語を
全行数(数千〜)を一気に削除する方法を
教えてください。

置換で、/\w$ (/ 英単語 行末)で引っ掛けようとしたのですが
引っ掛らない単語(何故かは不明。アルファベット&数字&-_ で構成)が
あって全部置換出来ませんでした。
\W の代わりに、 / * $ のように
アスタリスクが利けばよいのですが。。。

よろしくお願いします。


[ ]
RE:14618 行末単語の削除方法No.14619
アルビレオ さん 03/05/09 07:48
 
アルビレオです。

>これらの行の、5番目の / 以降の単語を
>全行数(数千〜)を一気に削除する方法を
>教えてください。
>
>置換で、/\w$ (/ 英単語 行末)で引っ掛けようとしたのですが
>引っ掛らない単語(何故かは不明。アルファベット&数字&-_ で構成)が
>あって全部置換出来ませんでした。
>\W の代わりに、 / * $ のように
>アスタリスクが利けばよいのですが。。。

秀丸の正規表現は\wには対応していません。
/から行末までの英数字と_を削除するなら
/[0-9_A-Za-z]+$
です。
英数字と_以外はありえないとわかっているなら
/[^/]+$
でもいいでしょう。
/の数が不定で、5番目の/以降のみを削除したいなら
検索:^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*/\f[0-9_A-Za-z]+$
置換:\0
とすれば多重に置換しても間違いがないと思います。
5番目の/も削除するなら
検索:^[^/]*/[^/]*/[^/]*/[^/]*/[^/]*\f/[0-9_A-Za-z]+$
置換:\0
ですね。

ついでに書いておくと\wは「英数字一文字」と同等なので「英単語」とはマッチ
しませんよ。\wは[0-9_A-Za-z]の省略記法です。
それから\Wだと「英数字以外の一文字」なのでまったく逆の意味になります。
英単語とマッチさせたいなら\w+または[0-9_A-Za-z]+と書きます。

[ ]
RE:14619 行末単語の削除方法No.14621
john_j_rambo さん 03/05/09 10:41
 
アルビレオ様
>
>秀丸の正規表現は\wには対応していません。
>/から行末までの英数字と_を削除するなら
>/[0-9_A-Za-z]+$
>です。

これで無事に変換できました。
ありがとうございました。

[ ]
RE:14619 行末単語の削除方法No.14623
ひろ さん 03/05/09 18:49
 
 john_j_rambo さん、アルビレオさん今日は、ひろです。
> 秀丸の正規表現は\wには対応していません。
 あれ、ヘルプに
>  正規表現では,以下のエスケープシーケンスが使用できます。
<中略>
> \w  英単語
と有ります。私の環境 (Windows98+秀丸 Ver.3.19) では、提示していただい
た例は、全て削除できました。

 具体的にどの様な文字列が削除できなかったのでしょう?

[ ]
RE:14623 行末単語の削除方法No.14627
アルビレオ さん 03/05/09 21:40
 
ひろ<xxxxxxxxxxxxxx@maruo.co.jp> wrote:

>  john_j_rambo さん、アルビレオさん今日は、ひろです。
> > 秀丸の正規表現は\wには対応していません。
>  あれ、ヘルプに
> >  正規表現では,以下のエスケープシーケンスが使用できます。
> <中略>
> > \w  英単語
> と有ります。私の環境 (Windows98+秀丸 Ver.3.19) では、提示していただい
> た例は、全て削除できました。

見落としてました…(^^;
john_j_rambo さんが処理しようとしていたものは数字も含んでいたようなので
> 半角アルファベットと半角アンダースコア(_)だけで構成される文字列
に一致しなかったのではないでしょうか。

[ ]
RE:14627 行末単語の削除方法No.14631
john_j_rambo さん 03/05/11 16:19
 
アルビレオさん、ひろさん

>> 半角アルファベットと半角アンダースコア(_)だけで構成される文字列
>に一致しなかったのではないでしょうか。

そのようです。
アルビレオさんに教えて頂いた方法で無事に実行できました。
ありがとうございました。


[ ]