[[20190201102825]] 『特定のランダム数字を消したいです』(めぉ ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定のランダム数字を消したいです』(めぉ )

テキスト文章の修正を行いたいのですが

(abc/●●●●●/1234567)
という文字列があり、●の中はランダム数字で5桁という決まりがあります。
その5桁数字をすべて削除したいのですが
一気に修正するようなやり方であったり関数?置換であったり
そういったものやアイデアはないでしょうか。
文字数が1万以上あり、今2千程手作業で消したのですが
2時間もかかりやってられなくなりました…。

また、(abc●●●)といった文字列で●はまたランダム数字なのですが
abc●●●をすべて消すというような作業も行いたいです。
どうにか知恵をお貸しください。

< 使用 アプリ:テキストエディダ、使用 OS:Windows10 >


使用アプリ:テキストエディダ なので参考になるか分かりませんが、Excelをつかうとすれば

(ひとつめのほう)
左から4文字 と 左から8文字 を結合する数式をかんがえてみてはどうでしょうか?

(ふたつめのほう)
abc* を置換して削ってはどうでしょうか

(もこな2) 2019/02/01(金) 10:50


↑ ミスりました
 × 左から8文字
 ○ 右から8文字

(もこな2) 2019/02/01(金) 10:51


 Excelとして回答すればいいんですかね?

 ■ (abc/●●●●●/1234567) 
 これをどうしたいんですか?

 (abc1234567) でいいのなら
 範囲を選択して置換

 検索する文字列:/*/
 置換後の文字列には何も指定せず「すべて置換」

 ■(abc●●●)
 これはどうしたいんですか? ( )だけ残す?

 以上です
(笑) 2019/02/01(金) 11:10

WINDOWSで、エディタですか。 ならば、powershell を使ってみるのはいかがでしょうか。
数字だけ消すと // になってしまうので、おそらく / も消すのだろうと想定した例。
 get-content ファイル名 | foreach { $_ -replace "abc/\d{5}/", "abc/" }

あと、これがHTML内のURLを更新するための作業ならば、相対パス指定を活用し、置き場所を変えても追従できるように書いておくと、手間がかかりませんよ。
(???) 2019/02/01(金) 11:15


質問事項が明確にかけていなくて申し訳ございません。
まわりに聞く人もいないのですごくありがたいです。ありがとうございます。
テキスト文章はHTMLです。

(abc/●●●●●/1234567)

(abc/1234567)に修正したいです。

(abc●●●)
はもろとも消したいです。
●が桁数は変わらずですがランダム数字なので困っています。

「*」というのはどういう意味合いがあるのですか?
ランダム数字を「*」に当てはめることができるのでしょうか。

>(ひとつめのほう)
> 左から4文字 と 右から8文字 を結合する数式をかんがえてみてはどうでしょうか?

結合する書式というをが分からないです。

お聞きしたPowershellというのを調べて見ましたが
難しそうです…
今使っているのはサクラエディダというものです。
文章をエクセルに張り付けてもいじれるかと思います。

(めぉ ) 2019/02/01(金) 11:38


 やっとエクセルという言葉がでてくれた・・・
 こういう感じではだめですか?

    |[A]                     |[B]          |[C]                                                                             
 [1]|(abc/●●●●●/1234567)|(abc/1234567)|B1=LEFT(A1,FIND("/",A1)-1)&MID(A1,FIND("/",A1,LEN(LEFT(A1,FIND("/",A1)))+1),100)
 [2]|(abc123)              |(abc)      |B2=LEFT(A2,AGGREGATE(15,6,FIND(ROW(1:10)-1,A2),1)-1)&RIGHT(A2)                  
(稲葉) 2019/02/01(金) 11:57

桜エディタなら、マクロ機能で変換できそうな?

PowerShellは、DOSじゃ機能不足になってきたので、unixの核と言えるShellをWindowsでも使えるようにしよう、って感じで追加されたものです。 コマンドプロンプトと同じようなもんですよ。 起動は WIN+X から行うと良いでしょう。

まぁ、私の書いた1行をコピペし、ファイル名を直すだけなので、試してみてください。 コマンドは豊富ですが、全部覚える必要なんて全然ないですから。(結果を別のファイルに出力する場合は、後ろに 「 > 出力ファイル名」を追加しましょう)
(???) 2019/02/01(金) 11:58


 あくまでExcelとして回答します。

 >(abc/1234567)に修正したいです。

 範囲を選択して置換

 検索する文字列: ?????/  ← / の前に「?」を5個
 置換後の文字列には何も指定せず「すべて置換」

 >(abc●●●) 
 >はもろとも消したいです。 

 ( )ごと消すってこと?
 で、abc以外はそのまま残すんですか?

 検索する文字列:(abc*)
 置換後の文字列には何も指定せず「すべて置換」

 Excelで試してみてください。

 以上
(笑) 2019/02/01(金) 12:00

ついでに2つ目の変換もPowerShellで書くと、以下。
 get-content ファイル名 | foreach { $_ -replace "\(abc\d{3}\)", "" }

1つ目と2つ目を両方変換し、結果を別ファイル保存するようまとめると、以下。

 get-content ファイル名 | foreach { $_ -replace "abc/\d{5}/", "abc/" } | foreach { $_ -replace "\(abc\d{3}\)", "" } > 出力ファイル名
(???) 2019/02/01(金) 13:00

こちらは【エクセル】に関する質問掲示板なので、あえてExcelで答えると。

>「*」というのはどういう意味合いがあるのですか?
>ランダム数字を「*」に当てはめることができるのでしょうか。

「*」や「?」ワイルドカードとして扱われます
https://dekiru.net/article/12584/

>結合する書式というをが分からないです。
「書式」ではなく「数式」です。

 ="あいう" & "えお"
    ↑
 「あいう」という文字列と「えお」という文字列を結合する「数式」です。

(もこな2) 2019/02/01(金) 13:16


桜エディタはマクロや正規表現が使えたと思ったので、改めてインストールして確認してみました。
結果、置換機能で「正規表現」にチェックを入れれば、私がPowerShell用に書いた文字列で、同じ事ができましたよ。

置換前:abc/\d{5}/
置換後:abc/

置換前:\(abc\d{3}\)
置換後:

こんな感じで2回に分ける必要がありますが、指定する文字列は同じです。
(???) 2019/02/01(金) 14:28


できました涙
みなさんの教えてくださった内容をすべて試していきまして
やはり元がエクセル書式じゃないからか上手くできなかったのですが
(???)の教えて頂いた方法でやってみたら、しゅるっと出来ました涙
わざわざサクラエディダをDLまでして頂いてから教えて頂きましてありがとうございます。
正規表現なんていうのは初めて聞きました。
応用が難しそうですが、知らない技術を知れてうれしいです。
ほかにも活用できそうで、こういった作業をするときに使ってみたいです。

一人でちまちま手作業で消しているときも「これ絶対すごい人なら一瞬で出来るはずなのに…><」
と思い誰かに助けてほしくて書き込みさせて頂きました。

いろいろと知恵をお貸しくださった皆様、ありがとうございました。
このような親切なスペシャリストの集まるサイトをこの度初めて知りました。
身内にも教えさせていただきたいと思います。
この度は本当に助かりました。ありがとうございます。

(めぉ ) 2019/02/01(金) 16:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.