アレルギー対策、自宅でできる効果的な方法とは?

お世話になっております。
秀丸エディタの置換で、数値部分のみを抽出したいと考えています。

(例)
http://www.abd.com/cat/
http://www.abd.com/cat/54678/
http://www.abd.com/cat/eco/
http://www.abd.com/cat/eco/as/458/index.php
http://www.abd.com/cat2/
http://www.abd.com/cat/5412578/
http://www.abd.com/cat/bs/5894/
http://www.abd.com/cat3/
・・・

正規表現を使ってこのように数値のみを抽出したいです。

54678
458
5412578
5894
・・・

検索してみましたがヒントになりそうなのはありませんでした。
ご教授いただければ幸いです。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

検索文字列:[^0-9\n]|^\n


置換文字列:なし

なら、空行削除も含めて一発でできます。
    • good
    • 0
この回答へのお礼

1回で実現できました。助かりました。
ありがとうございました。

お礼日時:2007/03/28 21:00

正規表現ON


検索文字列:[^0-9\n]
置換文字列:(なし)

でできるはずです。
[]記号は、検索する文字の範囲を表します。
[]の中の^は「それ以外」の意味。
[]の中の-は、文字の(文字コードの)範囲。
\nは改行文字で、これがないと複数行の数値がごっちゃになってしまいます。

これをやると、数字が入っていない行は空白行のままになりますが、
それが問題になるなら、もう一段階、
検索文字列:^\n
置換文字列:(なし)
で置換してください。
[]の中でない^は「行の先頭」の意味です。
    • good
    • 0
この回答へのお礼

できました。
説明までしていただき、参考になりました。
少しずつ勉強していきたいと思います。
ありがとうございました。

お礼日時:2007/03/28 20:59

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字列から数字を取り出す方法

質問があります。
例えば、テキストファイルから文章を一行ずつ読み込み、それをString型の変数に格納していきます。
その文から数字(整数で、何桁かはわからない。)を取り出し(ちなみにその数字の前後には特定の文字がついています)、変数に格納するというプログラムを作りたいのですが、具体的な方法がわかりません。
よろしければ是非教えてください!

Aベストアンサー

こんな感じですか?
数値以外を除きそのまま代入させます

String str = "ABCDABCD1234512345abcd";
int ret = Integer.parseInt(str.replaceAll("[^0-9]",""));
System.out.println(ret); //結果表示

Q文字列から数値だけ取得するにはどのようにしたらよいでしょうか?

文字列「X="0123あいうえおabcd"」があったら、数値0123だけ取得したいのですが、どのようにしたら良いでしょうか?

Aベストアンサー

たとえばこんな感じで

<?PHP
$str='X="0123あいうえおabcd"';
preg_match("/[0-9]+/",$str,$match);
print $match[0];
?>

1箇所しかないとわかっている、もしくは最初にあらわれる数字だけ
選べばよいならこれですみますが、複数ある場合はこんな風ですね

<?PHP
$str='X="0123あいうえお456abcd789"';
preg_match_all("/[0-9]+/",$str,$match);
foreach($match[0] as $val)
print $val;
?>

QExcelで正規表現やワイルドカードなどを使って置換したいのですが…

Excelの中で置換をしたいのですが、
例えば以下のように( )かっこでくくられた不規則な数字を検索し、その前後に記号を付加するといった具合です。
Wordだと置換で正規表現が使えますが、Excelではやはりマクロを作らないとだめなのでしょうか?

 置換前
  あいう(123)かきく(あああ)
  さしす(ははは)たち(589)つ
   ・      ・
   ・      ・

 置換後
  あいう★(123)★かきく(あああ)
  さしす(ははは)たち★(589)★つ
   ・      ・
   ・      ・

Aベストアンサー

以下の正規表現アドインを使用すると可能です。
http://srcedit.pekori.jp/tool/excelre.html

置換前 ((\d+))
置換後 ★$1★

Qエクセル 数値だけ抽出するには?

エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか?
文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。
A列からb列のように変換したいのです。

A列          B列
PMID:_12345678    12345678
PMID:_123456     123456

宜しくお願いいたします。

Aベストアンサー

B1に
VALUE(REPLACE(A1,1,6,""))
でよいでしょう.

数値の桁数には依存しません.

Q正規表現でAND検索はできるのでしょうか

正規表現でAND検索はできるのでしょうか?

現在ASPでデータベースのデータを検索しようとしているのですが,検索エンジンみたいに複数の語をスペースで区切って入力して,データを絞り込んで表示したいのです。

OR検索みたいにそれぞれの語を"|"でつなぐというようなやり方があるのでしょうか?
それとも一つ一つの語で検索を繰り返すという方法しかないのでしょうか?

ご存知の方,ご教授ください。

Aベストアンサー

&&でつながれたらいかがですか?

(?=.*stat)(?=.*ate)はAND検索という意味ではありません。
statedのようにstatとateを重複して含む単語にマッチするという意味です。

普通はこんな回りくどいことはせず、
/stat/ && /ate/
で済ませると思います。
(もしくは単純にループでまわしていくとか)


foo.*bar|bar.*foo
も、2語程度までが限界ですよね。
10語分繋げることを考えると気が遠くなります。
(記述も処理時間も)

言語によってはさらに処理を短縮できるような
特有な構文がありますから、調べてみればよろしいかと思います。

QJavaScriptで文字列の特定文字以降を取得する方法

変数 url に以下のような文字列が代入されています。
var url='http://www.example.com?id=2&page=3';

ここから?以降の文字列だけを取得したいのですが、どのようにすれば良いのでしょうか?
「id=2&page=3」←このような結果が欲しいです。

ブラウザのurlから直接?以降を取得するには location.search を使えば良いというのは調べてわかりましたが、変数に文字列としてurlが代入された場合の方法がわかりません。

ご回答よろしくお願いいたします。

Aベストアンサー

文字列から抽出するのであれば、indexOfを使うか正規表現かでしょうね
深く考えなければ前者、複雑なデータを取りたいなら後者でしょうか

<script>
var url='http://www.example.com?id=2&page=3';
if(url.indexOf("?")>=0){
var str1=url.substring(url.indexOf("?")+1,url.length);
}
document.write(str1+"<br>");

var reg=new RegExp("\\?(.+?)$");
if(url.match(reg)){
var str2=url.match(reg)[1];
}
document.write(str2);
</script>

Q正規表現で全角数字を半角数字に置換する方法は?

いつもお世話になっております。

テキスト内の全角数字5桁のみを該当の半角数字5桁に置換する方法を探しています。

OS:Win
テキストエディタ:sakuraエディタ、秀丸

例)
----------------------------------------
あいうえお01234かきくけこ99さしすせそ

あいうえお01234かきくけこ99さしすせそ
----------------------------------------

正規表現で行えばいいと思い、置換文字列を
 [0-9][0-9][0-9][0-9][0-9]
あるいは
 [0-9]{5}
にしましたが、置換後の文字列が分かりません。

試しに検索で上記の文字列を試すと、該当箇所がマークされるので、
置換前の文字列は合っています。

置換後の文字列をご教授願えますでしょうか。


※テキストエディタで無理ならプログラム組みます。
VBScriptを考えていますが、他に良い言語があれば併せて教えてください。

Aベストアンサー

No.4 & No.5 です。
質問文中の「のみ」を見逃していました。
6桁や10桁は変換してはいけないのですね。
方法を考えてみたのですが、やや手順が長くなってしまいました。
なお、テキストファイルを処理するので表は存在しないものとしています。
(存在する場合は単語の先頭や末尾を考慮する必要がある)

1.全角数字以外にはさまれた全角数字5文字を変換する
(1) 検索でワイルドカード使用
(2) 検索する文字列は「[!0-9][0-9]{5}[!0-9]」
(3) 「検索先」「メイン文書」を順にクリック
(マクロの記録中ならここでいったん閉じて再び検索)
(4) 検索する文字列を「[0-9]{5}」にする
(5) 「検索先」「現在の選択」を順にクリック
(6) 閉じる
(7) 半角に変換
これで文頭以外は変換できるはずです。

2.文頭
文頭に全角数字5文字がある場合、それより前に文字がないため上記手順では選択されません。
そこで、(2)の検索する文字列を「<[0-9]{5}[!0-9]」にしてもう一度上記手順を実行するか、いっそのこと手動で選択して半角に変換するか等を行う必要があります。

何度も使用するなら記録マクロにしておけばよいと思います。


ところで、サクラエディタはマクロとしてWSHが使用可能だと聞いたことがあります。
ということは、たとえばNo.6様提示のソースを改造したり、VBScriptで書いたりしてマクロとして使用してもよいのではないでしょうか。

No.4 & No.5 です。
質問文中の「のみ」を見逃していました。
6桁や10桁は変換してはいけないのですね。
方法を考えてみたのですが、やや手順が長くなってしまいました。
なお、テキストファイルを処理するので表は存在しないものとしています。
(存在する場合は単語の先頭や末尾を考慮する必要がある)

1.全角数字以外にはさまれた全角数字5文字を変換する
(1) 検索でワイルドカード使用
(2) 検索する文字列は「[!0-9][0-9]{5}[!0-9]」
(3) 「検索先」「メイン文書」を順にクリック
(マクロの記録...続きを読む

Qテキストエディタで4桁の数字のみを抽出

以下の条件でお願い致します。

【条件】
テキストエディタのgrep機能,置換機能のみで実現したい

【質問】
4桁の数字のみを抽出するにはどういった方法があるでしょうか?
(該当行1行まるごとではなく「数字4文字」のみ)

つまり株式の証券コードのみを残したいと言うことです。
お手数をおかけ致します。よろしくお願い致します。

Aベストアンサー

No3のお礼の記述の現象は不可解ですね。
とりあえず1行に2回以上数字4文字が出た場合に取り逃しすのは分かりますが。
さしあたり私の考えた表現を挙げます。

検索: ([0-9]{4})
置換: ←\1→

検索: \n
置換:

検索: →.*?←
置換: \n

「→」「←」の部分はあくまで例です。本文中に出てこない文字列にしてください。
なお、最初の数字4文字以前と最後の数字4文字以降は消えないので手作業で消してください。

No3お礼のURLのテキストで試したところ成功しました。(18個の数字4文字(内1個は年号)が残る)
ソフトは「EmEditor」です。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報