• 締切済み

正規表現を使用した置換(サクラエディタ)

正規表現を使用して(7桁の数値)のみを残す置換をしようとしましたが上手くいきません、上手い方法はありませんでしょうか。 (7桁の数値)がなくても改行は残す置換を行いたいです 例 1行:12345(1000000)1145 2行:231(1234567)231(8901234)235 3行:235677433 4行:(1111111)(2222222)333 ↓ 置換 1行:(1000000) 2行:(1234567)(8991234) 3行: 4行:(1111111)(2222222)

みんなの回答

  • Wap58
  • ベストアンサー率33% (29/87)
回答No.3

perlだと、こんな感じでしょうか gスイッチ外すと無限ループでえらい事になります $an ="12345(1000000)1145 231(1234567)231(8901234)235 235677433 (1111111)(2222222)333 "; while( $an =~ m[(\(\d{7}\)|\n)]g ){ print"$1"; }

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

\b(\d{1,6}|\d{8,})\b で、1~6桁の数値、または8桁以上の数値にマッチするので空文字列に置換すれば消えます。

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

sed 's/\<[0-9]\{,6\}\>//g;s/\<[0-9]\{8,\}\>//g' file \<\> が使えるならこんな感じ? もっと簡単な方法もあるかもしれない

関連するQ&A

  • サクラエディタの正規表現での置換

    サクラエディタの正規表現での置換の方法について教えて下さい。 行の末尾が数字で終わらない行の改行コードを削除したいと考えています。 ---------- 元ファイル ---------- 000abc123 777def 456 333ghi789 222jk+ 111 ---------- ---------- 加工後 ---------- 000abc123 777def456 333ghi789 222jk+111 ---------- 「置換前」は『[^0-9]\n』を入力することで検索できましたが、 「置換後」に何を設定すれば良いのかわかりません。(または「検索対象」の設定を変える必要があるのかなど) 例えば置換後に何も設定しないと「777de456」とfが消えてしまうため、”f”を残した上で改行コードを削除したいのですが その方法がわかりません。 よろしくお願いいたします。

  • 改行を正規表現での置換のあとで元に戻す。

    あるテキストデータを一行ごとに読み込んで、chompで改行をはずして結合し、一つの長い行にしてから、正規表現で文章中の単語を(かなり多く)置換したとします。置換したあとのデータを、元データと同じ改行位置で改行をしたいのですが、なにか簡単な方法がありましたら教えて下さい。

    • ベストアンサー
    • Perl
  • 正規表現による改行の置換

    Windowsで正規表現ができるテキストエディタ(NoEditer)を使っており、次のような改行で区切られた文を最後のピリオッドまでをつなげたいと思っています。例文ではX,Y,Z.の直後には改行が入っており、目的はAaaaXBbbbYCcccZ.と一文につなげることです。 [例文] AaaaX BbbbY CcccZ. 正規表現で \n[^(\.\n)] としてを空欄に置換すると2行目以降の頭が消えてしまいます。---> AaaaXbbbYcccZ.  文頭の文字が消えずつなげる方法を教えて下さい。

  • 秀丸での正規表現を使用した置換

    いつもお世話になっております。 秀丸で正規表現を使用した置換処理を行いたいと思うのですが、どうしても正規表現の式が書けません。 どうかご教示下さい。 <置換前> ABC1 あAbCd++ ... ... ・先頭4文字は半角英数字の大文字固定 ・その後ろにタブ ・最後にかな、英数字、記号などの可変長の文字列 上記で1レコードです。 <置換後> ABC1 String 内容 あAbCd++ ... ... ・先頭4文字そのまま ・その後ろにタブを3つ+改行 ・続いて「内容」という文字列+改行 ・最後に可変長の文字列をそのまま+改行 「置換」の正規表現は以下だと思うのですが、英数字4文字と可変長文字列を別々にマッチさせる「検索」がどうしても分かりません。 \0 String\n内容\n\1\n どうかご教示下さい。 <環境> Ver.6.1.4

  • 正規表現で置換

    正規表現の初心者です。 テキストエディタを使って、「@:」で始まる以外の行の先頭に「//」を挿入してコメントアウトしたいのですが、正規表現がうまく書けません。 検索対象: ^[^(@:)] 置換文字列: // でいいのかなと思ったのですが、[]の中ではグルーピング用の()も文字として認識されてしまうのですね。 どのように書いたら正しく置換されるでしょうか。 どうかご教示ください。

  • サクラエディタでの置換について

    サクラエディタを使って、置換をしたいのです。 以下のようなコードで、(1)・(2)や(5)・(6)を2行をまとめて置換したいのです。1行のみの置換だと全て置換されてしまうので困っています。 (タブ)<tr bgcolor="#ffffff">(改行)........(1) (タブ)(タブ)<td>AAAAAAA</td>(改行)........(2)            : (タブ)<tr bgcolor="#ffffff">(改行)........(3) (タブ)(タブ)<td>BBBBBBB</td>(改行)........(4)            : (タブ)<tr bgcolor="#ffffff">(改行)........(5) (タブ)(タブ)<td>AAAAAAA</td>(改行)........(6)            : (タブ)<tr bgcolor="#ffffff">(改行)........(7) (タブ)(タブ)<td>CCCCCCC</td>(改行)........(8)            :            : また、自分で以下のように置換してみました。 置換前 \t<tr bgcolor="#ffffff">\n\t\t<td>AAAAAAA</td>\n  置換後 \t<tr bgcolor="#CCFF66">\n\t\t<td>AAAAAAA</td>\n として置換したのですが、文字列が見つかりませんと表示されてしまいます。2行をまとめて検索して、置換する事って出来ないのでしょうか? どなたかご教授願います。宜しくお願い致します。

  • 秀丸で正規表現による置換

    正規表現でつまずいてしまったので教えてください。 こういうデータがあったとして ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ,,E,77774000,13,77770004479,〇〇〇,0,,,,,l_ ,,E,77774000,21,77770004478,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ,,E,88884000,14,88880004479,〇〇〇,0,,,,,l_ ,,E,88884000,20,88880004478,〇〇〇,0,,,,,l_ 6列目に77770004480があったら、5列目の1を10にする。 6列目に88880004480があったら、5列目の5を10にする。 という事がしたいのですが、7777や8888の部分は必ず数字4桁で固定ですが、 実際には0000-9999まであるため、1万回置換するのは面倒です。 そこで、0004480があったら、ヒットする1や5を10に置き換える事がしたいのですが どのようにしたらいいでしょうか? また、12を2に置き換えることもあるので、5列目は 必ず数字ですが、1桁または2桁となります。 正規表現置換で使用するエディタは、秀丸です。 ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ↓ ,,E,77774000,10,77770004480,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ↓ ,,E,88884000,10,88880004480,〇〇〇,0,,,,,l_ 以上よろしくおねがいいたします

  • 正規表現を教えて下さい(テキストエディタでの置換)

    いつもお世話になっております。 正規表現に関して細かい質問をさせて下さい。 例えば、G-01,T-02,F-05とあったときに、 これを、01,02,05としたいとき、 正規表現の置換で「[A-Z]-[0-9][0-9]」→「[0-9][0-9]」とすると、 "[0-9][0-9]"という文字列だけ残ってしまいます。 既存の文字列をそのまま残すにはどのようにしたらよいでしょうか? ※テキストエディタでの置換に関してです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 正規表現で置換

    MySQLの置換関数では正規表現は使えないのでしょうか? 以下のようなSQLを実行させたいのですが、「12345678」の部分はランダムで毎回変わります(8桁は固定)。 UPDATE テーブル SET カラム = REPLACE(カラム, 'ttp://hohe.jp/123/45678', 'ttp://uheuhe.jp'); php等は使用せずmysqlだけで処理させたいと考えています。 宜しく御願いします。

  • 秀丸の置換で正規表現を使う方法を教えてください

    お世話になります 秀丸エディタの置換を用いて、 (’.ab12#-cd’)のような文字列や数字、記号のまじった ( )から( )の中身を検索置換して (’’)にしたいと考えています。 具体例 (’.ab12#-cd’) (’.ab#37-c’) (’..ab-82#d%’) (’.12jg+#ppv’) (’.ab12lentext’)から ↓ (’’)に置換したい。 秀丸を使うときはあっても単純な 一文字程度の検索置換しかおこなったことがなく どうにも方法がうかばなかったところ 友人から、正規表現というものを 使えば実現できるようだと聞きました。 友人も残念ながら、プログラミングの経験は あまりなくて正規表現での記述方法は わからないいうことでした。 正規表現を使ってこれを実現する方法を 教えていただけませんでしょうか よろしくお願いいたします