タグ

正規表現に関するU1and0のブックマーク (8)

  • sedの正規表現で「\w」「\d」「\s」を実現する方法

    sedの正規表現で「\w」「\d」「\s」を実現する方法を紹介します。 1.問題点 sedの正規表現では、Perlなどで使われる英数またはアンダーバーにマッチする「\w」や「\d」、あるいは空白にマッチする「\s」などのメタ文字を使うことができません。 たとえば次のスクリプトで変数dataから「123」という値を取得しようとしても、期待通りの結果になりません。 #!/bin/sh data="abc123def" result=`echo "$data" | sed -e "s/^.*\(\d\{3\}\).*$/\1/"` echo $result ということで、メタ文字と同じ効果を得られる方法を紹介します。 2.sedの正規表現で「\w」「\d」「\s」を使う sedの正規表現で「\w」「\d」「\s」などを実現するには、次の正規表現に置き換えます。 マッチ方法Perlsed 数字にマ

    sedの正規表現で「\w」「\d」「\s」を実現する方法
    U1and0
    U1and0 2019/01/14
    sedの正規表現で「\w」「\d」「\s」などを実現するには、次の正規表現に置き換えます。 マッチ方法 Perl sed 数字にマッチ \d [0-9]
  • Vimでパターン検索するなら知っておいたほうがいいこと - derisの日記

    この記事はVim Advent Calendar 2012の166日目の記事です。 165日目はaueweさんによる.vimrcに書くべきでないVimの設定項目でした。 Vimに限りませんが、テキストエディタを使う際にテキスト検索はよく使うと思います。 ある程度慣れた人だと正規表現を用いたパターン検索を使うようになります。 もちろん、Vimにも正規表現を用いたパターン検索を行う機能は備わっています。 しかし、お世辞にもVimのデフォルト設定ではパターン検索は書きやすいとは言えません。 特に、他の正規表現方言に慣れている人は、Vimの正規表現の書き方の違いに戸惑うと思います。 記事では、Vimでパターン検索するなら知っておいたほうがいいこと+ Vimのパターン検索に使えるメタ文字をご紹介します。 パターンって何?という方は:help usr_27.txtを一読することをおすすめします。 一

    Vimでパターン検索するなら知っておいたほうがいいこと - derisの日記
  • 使うほどに良さが分かる正規表現

    初歩的なパターン指定 では簡単そうなところから順番に紹介していきましょう。 任意の1文字「.」 まずは任意の1文字と一致する「.」です。数字やアルファベット、記号など、文字種は問いません。DOS/Windowsのワイルドカードの「?」に相当すると考えればいいでしょう。 ちなみに、「.」自体に一致してほしいときはどうすればよいのでしょうか? その場合は「\.」と書きます。これに限らず、\を直前に置かれた文字は特別な意味を失い、そのままの文字を意味することになります。正規表現でファイル名を指定するときに「main.c」と書くと、目的の「main.c」にもマッチしますが、「main2c」などといったファイル名にもマッチしてしまいます。正確を期すためには「main\.c」と書かなければなりません。 0回以上の繰り返し「*」 次はワイルドカードの「*」に相当するパターンを紹介しましょう。実は、正規表

    使うほどに良さが分かる正規表現
  • Pythonで文字列を置換する:replace(), re.sub() | UX MILK

    Python で文字列を別の文字列で置換したいときは replace あるいは re.sub を使います。 replace は単純な文字列置換を行います。正規表現を利用したより複雑な置換を行うためには標準ライブラリの re モジュールにある re.sub を使用します。 replace を使用して文字列を置換する replace の記述方法は以下の通りです。

    U1and0
    U1and0 2016/06/14
    文字列置換src.replace("b", "B")bをBに変える
  • 正規表現の先読み・後読みを極める! - あらびき日記

    この記事は abicky.net の 正規表現の先読み・後読みを極める! に移行しました

    正規表現の先読み・後読みを極める! - あらびき日記
  • 正規表現で特定の文字より前/特定の文字より後を抜き出す

    開発備忘録。PHP,Perl,VB,Flex,その他WindowsLinuxサーバなど。 たまにSF小説と雑記。ブログタイトルはニューロマンサーから。 覚えておくと便利。 私は秀丸とかでよく使っています。 特定の文字列より前を抜き出す正規表現 (?<=あ)(.*) →「あ」よりあとを抜き出す (.*)(?=あ) →「あ」よりまえをぬきだす 「あ」が「abc」とかでも大丈夫です。確か。 それにしても秀丸は慣れると手放せません。 SEだけでなくデータ入力とか事務作業の多い人が使っても威力を発揮すると思います。 [正規表現]特定文字列以前or以降を取り出すにはどう書けばいいのでしょうか? http://q.hatena.ne.jp/1183183225

    U1and0
    U1and0 2016/02/14
    特定の文字列より前を抜き出す正規表現 (?<=あ)(.*)  →「あ」よりあとを抜き出す (.*)(?=あ)  →「あ」よりまえをぬきだす
  • 正規表現 /g と \G - suu-g's diary

    Perlの正規表現、 \G の項目がどうにも分からん! だって末尾に /g をつけたら最後まで検索しちゃうんでしょ? $html =~ s/\G\s*<h[1-6]>/<span class="dekamoji">/g; みたいなのが何の意味があるのさ? ↑つい二時間前まではこう思ってた。 でも、それは大きなミステイクだった。 \Gもまた、正規表現の能力を単なるマッチや置換から大幅にパワーアップさせてくれる要素だったんだ。 勘違いの始まりは、正規表現を学べば誰もが目にする s///g からだった。 $mojiretsu =~ s/hogehoge/fugafuga/g; とすると、検索文字列 $mojiretsu 中のすべての hogehoge を fugafuga に置換する。 でも、それだけだとあまりよい理解じゃなかったんだ。 s///g と似た形をしている、 m//g というコンテキ

    正規表現 /g と \G - suu-g's diary
    U1and0
    U1and0 2016/01/11
    \Gは前のマッチ位置を意味しているので、これを使うことで前のマッチ位置の直後との関係について指示できるわけだ。
  • 1