タグ

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

  • vim正規表現リファレンス - Qiita

    このエントリの内容は pattern - Vim語ドキュメント を見れば全て書いてある。 個人的によく見直すものを自分なりに整理してまとめなおしたものです。 メモ vimの正規表現には \ でエスケープする必要な文字がオプションによって変わる。これには magic / nomagic / very magic / very nomagic と4つのモードがあるけど、vim では magic モードを基とします。 繰返し制御系(量指定子) a* は0回以上の a の繰り返しにマッチする。(最長一致) a+ は単に a+ という文字列にマッチする。 a\+ は1回以上の a の繰り返しにマッチする。(最長一致) a? は単に a? という文字列にマッチする。 a\? は0または1個の a にマッチする。 a\= は0または1個の a にマッチする。(\? と基同じだが \? は後方検索

    vim正規表現リファレンス - Qiita
  • ここまで出来る!Vimの(ちょっと高度な)正規表現と検索/置換テクニック - Qiita

    Vimは非常に強力な正規表現とそれに伴う強力な検索/置換機能を備えています。 今回はそんなVimの正規表現と検索/置換のテクニックをまとめてみます。 Vim特有の正規表現を覚える Vimの正規表現には独特な方言がある Vimの正規表現は何かと面倒な事が多いです。 Perl等と比べて、様々なメタ文字をエスケープしてやらなければなりません。 例えば通常の正規表現であれば (abc)+ と書く事で、 文字列 abc の繰り返しを意味することができますが、 これをVimの正規表現で書こうとすると、\(abc\)\+ 等と書かなければならず、大変面倒です。 これらの方言はVimを使っていく上で自然に覚えていくにはいくのですが、 ついうっかりいつもの正規表現を使ってしまったり、 逆にプログラム側で正規表現を書く必要のあるときに Vim方言な正規表現を書いてしまったりして悲しい事が起こったりと結構厄介で

    ここまで出来る!Vimの(ちょっと高度な)正規表現と検索/置換テクニック - Qiita
  • シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita

    入社1年目、趣味は整理整頓、 @pal4de です。 正規表現が大好きです。 先日投稿した記事が好評いただき当にうれしかったです。もっとたくさんの人に読んでもらいたい!!! さて、上の記事で紹介したのは単語境界 \b でしたが、これは先読み/後読みを駆使して下記の通りに表せると紹介しました。 便利な\bですらショートハンドに過ぎず、真に強力なものは 先読み(?=...)と後読み(?<=...) だということを主張したい!!! わかりすい図解も添えましたので、是非お楽しみください🏝️ 正規表現の記号は4種類 先読みの紹介に入る前に、改めて正規表現を俯瞰してみましょう。 誤解を恐れずに言えば、正規表現に出てくる記号の種類は4つしかないといえます1 2。 このようにとらえてみると、正規表現と向き合うのがだいぶ楽になります。体系化された理解への第一歩ですね 🗿 図にもある通り、 行頭 ^ も

    シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
  • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

    正規表現の"正規"って何 ある時ふと思いました。 「正規表現の"正規"って何だろう?」 「何を根拠に"正規"を名乗っているのか?」 と。 「誰かが『これが正規の表現だ』と言ったはず」で、 「それは周りにどうやって"正規"だと認められたのだろう」 ということが気になったので調べてみました。 "正規表現"という名前でなくて、"ジャックさんの表現"とか"記号ごちゃごちゃ表現"だったらこんな疑問も持たなかったのですけど。 数学における"正規"とは 一般に"正規"というと、"正規品"や"正規の手順"といったように"物の(genuine)"や"公式な(official)"といった意味がありますが、数学の"正規"はちょっと違います。 数学で"正規"(および"正則"、英語では"regular"または"non-singular")は、ある概念に強い制限をかけたもの、という意味です。強い制限をかけたものは取

    正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
  • 【JavaScript】JavaScriptの正規表現で変数を使う - だめだま

    JavaScriptで正規表現のmatchを使う場合 通常 hoge.match(/abc/); とするけどabcの部分は変数ではなくてStringとして認識されてしまうので var abc = "efg"; hoge.match(/abc/); としてもefgを検索してくれない。 そこで、変数を入れたい場合は正規表現オブジェクトを使う var abc = "efg"; reg = new RegExp(abc); hoge.match(reg); とするとefgで検索してくれるようになる。 細かい検索条件も設定可能 reg = new RegExp("^" + abc + "[0-9]+$");

    【JavaScript】JavaScriptの正規表現で変数を使う - だめだま
  • 心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館

    長年、後回しにしてきた「正規表現」。四の五の言わずにはじめようよ!と20年前の自分に伝えたく、まとめてみました。 詳しい方が見ると、乱暴だったり、おかしなところがあると思いますが、入り口に立つことが大切だと考えています(書いた人は文系・グラフィックデザイン関連です)。 はじめにたとえば、文章中に「コンピュータ」と「コンピューター」が混在していて、これを「コンピューター」に統一したいとき、あなたなら、どうしますか? 単純な検索置換なら、次のような順番で処理できます。 ❶「コンピューター」を「コンピュータ」に一括置換する ❷「コンピュータ」を「コンピューター」に一括置換する ❸ ちょっと心配なので「ーー」(音引きの繰り返し)をチェック これはこれでアリなのですが、1回の作業でできたらベターです。 しかし、「コンピュ-タ」のように正しく音引き(ー)が入力されていない場合には単純な検索置換ではお手

    心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館
  • あなたの知っている正規表現はもう古い! 正規表現の新常識(ES2018編) - Qiita

    2018年1月23日から25日にかけて、TC39の第62回ミーティングが行われました。TC39のミーティングでは、提案されているECMAScriptの新機能 (proposal) について審議し、各proposalのステージの移動を決定します。 今回のミーティングでは正規表現に関する幾つかのproposalがStage 4になりました。Stage 4になったproposalはES2018に組み込まれ、JavaScript (ECMAScript) に正式採用ということになります。 この記事では、JavaScriptに追加された正規表現の4つの新機能を紹介します。 s (dotAll) flag for regular expressions Proposal: https://github.com/tc39/proposal-regexp-dotall-flag 正規表現の新たなフラグとし

    あなたの知っている正規表現はもう古い! 正規表現の新常識(ES2018編) - Qiita
  • [正規表現] .*?は最短マッチではない - Qiita

    # Ruby 2.4.2 "<<<hoge>>>".match(/<.*?>/)[0] #=> "<<<hoge>" なぜこうなるのか .*?は、 最短マッチ 最左マッチ の2つの原則に従い、しかも最左マッチの原則の方が優先順位としては高いからである。 より嚙み砕いて言うと <.*?>は先頭の<がマッチした後に、そこからマッチする部分をできるだけ最小化しようと試みる。 <<<hoge>>>に対して<.*?>をパターンマッチさせる際に行われる実際の処理の流れは、次のようなイメージになるだろう。 < # <までマッチ << # <>のマッチに失敗、.の数を増やしてリトライ << # <.までマッチ <<< # <.>のマッチに失敗、.の数を増やしてリトライ <<< # <..までマッチ <<<h # <..>のマッチに失敗、.の数を増やしてリトライ <<<h # <...までマッチ <<<ho

    [正規表現] .*?は最短マッチではない - Qiita
  • 正規表現を解析して可視化してくれるサイト『Regexpra』がやばい - Qiita

    ある正規表現に対して特定の文字列がマッチングしているのを確認してくれるサイトは山のようにあるんだけど、正規表現そのものがどんな文字列を期待しているのか分析・解読してくれるツールってあまりないのよね...(´・ω・`) 例えば ^(a-z|A-Z|0-9){4}$ こんな簡単なものだったらすぐに分かるけど これが複雑になってくると自分でも頭が???状態になってしまいます>< そこでこんなものを見つけました。 Regexper www.regexper.com 正規表現を入力してDisplayボタンを押すとその正規表現が示す内容を図で表示してくれます。 例えば誰かが書いたこんな正規表現で???になるときもあると思いますが メールアドレスをマッチングさせる正規表現ってのは分かるんだけど、この表記でどんな文字列を 期待しているのか分からない場合でもこのツールを通してみると 図の見方は左から線を辿っ

    正規表現を解析して可視化してくれるサイト『Regexpra』がやばい - Qiita
  • 正規表現サンプル(全角文字を検索する)

    検索したい文字 あいうえお12345漢字 上記の文字を検索したい場合にこの正規表現を使用できます。 半角文字にはマッチしません。(しかし半角カタカナにはマッチします。) 正規表現の書き方 上記の文字をそのままテキストエディターの検索画面に入力してください。 「正規表現を使用する」にチェックを入れるのを忘れずに。 正規表現の説明 『[ ]』は文字クラスといい、この中のいづれかの文字にマッチします。 この中で『-』を使うと、範囲指定できます。 ここでは、文字コード指定で『\x01-\x7E』として、半角文字を範囲指定しています。 (ここで使用している文字コードはSHIFT_JISです。) 『^』は否定なので、半角文字以外(つまり全角文字)にマッチします。 半角カタカナを含みたくない場合は、 『[^\x01-\x7E\xA1-\xDF]』 にしてください。 『\xA1-\xDF』は半角カタカナを

  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.8.2 正規表現

    正規表現は、複雑な検索でパターンを指定する強力な方法です。 このセクションでは、正規表現の照合に使用できる関数と演算子について説明し、正規表現の操作に使用できる特殊文字と構造の一部を例とともに示します。 セクション3.3.4.7「パターンマッチング」も参照してください。 MySQL では、Unicode の国際コンポーネント (ICU) を使用した正規表現サポートが実装されています。ICU は完全な Unicode サポートを提供し、マルチバイトセーフです。 (MySQL 8.0.4 より前では、MySQL は Henry Spencer による正規表現の実装を使用していました。これはバイト単位で動作し、マルチバイトセーフではありません。 正規表現を使用するアプリケーションが実装の変更の影響を受ける方法の詳細は、正規表現の互換性に関する考慮事項 を参照してください。) expr NOT R

  • 連想配列の使用方法 [Java Script - 配列 - Tips]

    連想配列とは、キーを指定して値をセット出来る配列です。 JavaでいうところのHashMap、.Netでいうところのhashtableです。 ただし、JavaScriptではプロパティと同じ意味合いになっています。 内部では厳密には違うのかもしれませんが、少なくとも使い方は一緒です。 1. 連想配列に値をセットする方法 - その1 // 連想配列を生成する var myObj = { key1: 'value1' , key2: 'value2' }; 2. 連想配列に値をセットする方法 - その2 var myObj = new Object(); // 連想配列に値をセットする myObj['key1'] = 'value1'; myObj['key2'] = 'value2'; 3. キーを指定して値を取り出す方法 // value1 と表示される alert( myObj['key

  • 正規表現 - JavaScript | MDN

    « 前のページ 次のページ » 正規表現とは、文字列内で文字の組み合わせを照合するために用いられるパターンです。 JavaScript では、正規表現はオブジェクトでもあります。これらのパターンは RegExp の exec() および test() メソッドや、String の match()、matchAll()、replace()、replaceAll()、search()、split() メソッドで使用できます。 章では、 JavaScript の正規表現について説明します。

    正規表現 - JavaScript | MDN
  • JavaのString.replaceとString.replaceAllの違い - Qiita

    Help us understand the problem. What is going on with this article?

    JavaのString.replaceとString.replaceAllの違い - Qiita
  • 正規表現の基本: .NET Tips: C#, VB.NET

    正規表現の基ここでは.NET Frameworkの正規表現について基をごく簡単に(主に正規表現パターンについて)説明します。なお.NET Frameworkの正規表現はPerl5の正規表現に対応するようにデザインされているということなので、Perlの正規表現を理解していれば問題ありません。 なお、「正規表現テストツール」を使って正規表現のテストを行うことができますので、お役立てください。 正規表現で何ができるか正規表現は、文字列を検索するために使用します。正規表現を使うと、かなり複雑な検索が可能です。正規表現を利用する主なケースには以下のようなものが挙げられます。 文字列内に指定されたパターンと一致する部分があるか調べる。例えば、入力された文字列が電子メールアドレスとして適当か調べるなど。文字列から指定されたパターンと一致する部分を検索、抽出する。例えば、文字列内にあるURLの部分をす

    正規表現の基本: .NET Tips: C#, VB.NET
  • bookshelf.jp

    This domain may be for sale!

  • 正規表現メモ

    \x{} \pは後続する名前が表すクラス(プロパティ、スクリプト、ブロック)に属する文字にマッチし、 \Pは後続する名前のクラスに属さない文字にマッチします。 クラスの名前が一文字のときはブレースを省略できます。 クラス名の前に^を置くことにより否定形の指定を行うことも可能です。 Perl 5.8 での変更点 Perl5.8以降(5.6でも使えたようですが)では \pや\Pで始まるプロパティ指定に標準Unicode属性を使うこともできます。 詳しくは perlunicode perlunicode - Perl における Unicode サポート を参照してください。 日語による説明が Unicodestandard にもあります。 Perl 5.8以降ではユーザーが任意のプロパティを作成することができます (IsまたはInを必ず前置)。 詳しくは perlunicode perluni

  • 1