タグ

regexpに関するfunaki_naotoのブックマーク (79)

  • はじめに - 作って学ぶ正規表現エンジン

    はじめに 正規表現は様々なプログラミング言語で利用されている、テキスト処理のためのパターン言語です。 正規表現はテキストエディタでの検索や置換、入力文字列のバリデーションなどプログラミングの様々な分野で実用されています。 ある程度の規模のプログラムにおいて、正規表現を全く利用しない (利用していない) ということはほとんど無く、正規表現は今日のプログラミングにおいて非常に重要なパーツだと言えます。 JavaScriptRubyといったプログラミング言語では正規表現はファーストクラスのリテラルとして実装されているため、とても簡単に利用できます。 例えば次のRubyプログラミングでは変数fooに入った文字列の部分にfizzかbuzzが含まれるかどうかを、正規表現/fizz|buzz/を使ってチェックしています。 foo =~ /fizz|buzz/ さらに、計算機科学 (コンピューターサイエ

  • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

    導入 アイヌ語は日語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま p, t, k, m, n, s, r などの子音文字を後ろの付ければ良いわけなので、アイヌ語ローマ字表記では、何も問題が生じない。しかし、元々開音節言語である日語に特化したカタカナのような仮名文字で表記する際、鼻音 n は「ン」でなんとかなる(実はそれでもまずい事になっているけどここでは割愛する)が、p, t, k, m, n, s, r, h はどうしようもないので、特殊の捨て仮名(小書き仮名文字)を利用することになっている。 具体的には以下のような特殊仮名文字(通称 アイヌ語仮名)である。 ㇷ゚ -p ッ -t ㇰ -k ㇺ -m ㇱ -s ㇻ -(a)r, ㇼ -(i)r, ㇽ -(u)r, ㇾ -(e)r, ㇿ -(o)r お分かり頂けただろうか… 問題 r

    アイヌ語仮名「ㇷ゚」に対する正規表現の罠
  • 詳説 正規表現 第3版

    「正規表現がこれだけ多種多様な言語やアプリケーションに取り入れられているのは、立派な理由があるからだ。正規表現は非常に強力なのだ。(中略)正規表現を使えば、データを自由に操れるようになる。データをコントロールし、自分のための仕事をさせられるのである。正規表現をマスターすることは、自分のデータを支配することなのだ。」(書「はじめに」より) ―書は正規表現の概念を詳細に解説し、言語やツールの実例を豊富に示しながら、正規表現への理解を深める解説書である。第3版では、前版のJavaと.NETに加え、新たにPHPの章が追加された。正規表現の質を読み解く決定版。特に正規表現を使いこなしていると自負している人にほど読んでほしい。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ち

    詳説 正規表現 第3版
  • ノイズが多いテキストを対象にした正規表現を書きやすくするPythonモジュール regex - MNTSQ Techブログ

    MNTSQ(モンテスキュー)という契約書管理のSaaS製品を開発する会社で、 アルゴリズムエンジニアをしている坂です。 契約書に書かれた情報を自動で抽出する仕組みを作っています。 概要 正規表現とはなにか 正規表現を書きにくい、中ボス的なテキストが存在する regexモジュールのFuzzy match機能を使って、楽に中ボスを倒す Fuzzy matchの使用例 裏話 実は、採用ブログも兼ねています この記事を書いた人 概要 私も非エンジニア出身であるため、Techブログではあるものの、 幅広い方に読んでいただきたいと思いました。 このブログの内容をざっくり図解すると、こんな内容を扱います。 正規表現とはなにか テキスト(=文字列)に対して、マッチさせるパターンのことです。 特定の文字を含むテキストを探すときに使います。 例えば、 テキスト1:「庭には2羽ニワトリがいる」 パターン1:「

    ノイズが多いテキストを対象にした正規表現を書きやすくするPythonモジュール regex - MNTSQ Techブログ
  • 正規表現(Regular Expression)について – Automation Skill

    はじめにいまや正規表現というのは自動化だけではなく、様々なアプリケーションの文書上での検索/置換機能で利用できる事も多い基的な機能となりました。もちろん自動処理においても特定の文字列を抽出・置換等に利用可能で、プログラミング上でも上手く使えば処理を簡潔に書けるようになる事も多くあります。 CCアプリケーションでは、Indesignにおける検索置換機能や段落スタイルにおける正規表現スタイル等の様に今や必須の機能となっています。また、CCアプリケーションだけではなく各スクリプト言語においてもサポートされており、自動処理においてはテキスト加工作業においては必須の技術となりますのでしっかりと押さえておきたいものです。 と、まあ、ここまでの文章を読んで頂いた方の中には「あれっ?」て思った人もいらっしゃるかと思います。この記事は過去に自動化総合フォーラムに寄稿したものの再録です。2019年9月のAd

    正規表現(Regular Expression)について – Automation Skill
  • 正規表現で古典ギリシア語のフォントだけ一括変換する方法!|『人文×社会』の中の人

    どうも、『人文×社会』の中の人です。 今回は、正規表現で論文中の古典ギリシア語の部分だけを選択して、フォントを一括変換する方法をご紹介していきたいと思います。 これまたマニアックな……と思われるかもしれませんが、古典ギリシア語を含む論文を書いている人にとっては、地味に役立つかもしれません。 ギリシア文字だけフォントを変えたい!1990年代以降、Unicodeが整備されたおかげで、今ではPC上で正確に古典ギリシア語を入力することができます。これにより、学術論文の中に古典ギリシア語の文や単語を入れることも容易になりました。 以下のように、Word上で日語・英語・古典ギリシア語が混在する文章を作成することもオチャノコです。 しかし、簡単に古典ギリシア語が入力できるようになると、「もっと古典ギリシア語のフォントがきれいなものにならないかな…」とさらに欲が出てきてしまいます。 先ほどの文章は、日

    正規表現で古典ギリシア語のフォントだけ一括変換する方法!|『人文×社会』の中の人
  • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

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

    正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
  • https://www.street-academy.com/myclass/123450

  • InDesign 16.2 でアップデートされた正規表現がおかしい? - DTPab

    先日アップデートされたInDesign 16.2(2021)ですが*1、正規表現検索置換にアップデートが入りました*2。 これまで、「行頭」という位置を表す^という正規表現は検索でだけ機能していました。それが16.2から置換としても正しく機能するというのが今回のアップデート……のはずでした。試してみたところいくつか不具合と思しきものを見つけたので、それらをまとめたエントリーです。 空の改行が挟まると正しい結果にならない 位置を表すほかの正規表現ではどうか $で検索置換 \Zで検索置換 \b、\<で検索置換 なぜかマッチする\> 表組での挙動 ^で検索置換 $で検索置換 \Zで検索置換 $では右下のセルだけマッチできない? まとめ 余談 空の改行が挟まると正しい結果にならない アップデート直後、ものかのさんがツイートしてくださっていました。 空行が2行以上ある箇所じゃなく「空行がからむと正常

    InDesign 16.2 でアップデートされた正規表現がおかしい? - DTPab
  • 心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館

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

    心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館
  • InDesign CC2014から変更された正規表現? - DTPab

    原因(例えば正規表現エンジンが変わったとか)は何もわかりませんが、現象として確認できたので記事に起こしました。 概要 メタ文字|の挙動 CCまで CC2014以降 何が起きているか? 対処するには まとめ 概要 InDesign CS4〜CCまでと、CC2014以降で正規表現検索結果に違いが確認できました。 これはパネルから検索した結果もそうですし、正規表現スタイルでマッチする結果も違います。要するに同じ正規表現でもCC2014以前か以降かで結果が変わるということです。 これは特にデータのバージョンをまたぐ場合に致命的です。 これまでのInDesignから考えると、バグではなく、おそらくアナウンスのない仕様変更でしょう。 メタ文字|の挙動 気づいたのはパイプ|*1の挙動です。 ご存知の通り、A|Bと検索するとAかBにマッチするという正規表現です*2。 このパイプ|が、InDesign CC

    InDesign CC2014から変更された正規表現? - DTPab
  • Shift_JISの全角文字のみにマッチする正規表現ジェネレータです。

  • InDesign正規表現まとめ

    中川伸也@Unity @rocappa クリップボードの内容を行頭に挿入 ~Cでクリップボードのオブジェクトを表現できるので$1のマッチングした内容と組み合わせることでクリップボードのオブジェクトを挿入することができる。なので箇条書きの頭にパスオブジェクトや画像を挿入したり。 #正規表現知恵袋 #InDesign pic.twitter.com/Xz9OcL1Slg 2020-01-23 10:21:29

    InDesign正規表現まとめ
  • 正規表現の「先読み/後読み」に関して | DTP Transit

    こちら(InDesignの段落スタイルで箇条書きでコロンの前までを太字にする)の記事で尾花さんからアドバイスいただき、「やらなきゃなー」と思っていた正規表現の「先読み/後読み」についてまとめてみました。 こんな感じでどうでしょう?(せうぞー師匠の教えが活きました! pic.twitter.com/tCwwkjNva3 — あかつき@おばな (@akatsuki_obana) June 9, 2019 「InDesign CS3 正規表現一覧」 「InDesign 正規表現」で検索すると、市川せうぞーさんが2008年に公開された一覧表が出て来ます。残念ながらブログの方は非公開になってしまいましたが、こちらのドキュメントは、まだ閲覧することができます。 「先読み/後読み」部分には次のように書いてあります。 正規表現意味用例・備考

  • InDesign-Regex.epub

  • Adobe Community

    Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

  • javascriptで全角文字のみを抽出する正規表現(半角カナにも対応) - だいたいよくできてる。

    正規表現で全角文字だけをヒットさせたい 全角文字を正規表現でヒットさせたい場合、 /[^\x00-\x7E]+/g; とすると「半角カナ」もヒットしてしまいます。 ASCII文字+半角カナを除いた文字列をヒットさせたい場合、 /[^\x00-\x7Eァ-ン゙゚]+/g; とすることで対応できました。 補足 [正規表現] 半角文字のみ取得 と 全角文字のみ取得 - 続くかな・・・ こちらの内容でも半角カナを除くことができるようです。 こちらの表記のほうがスマートかもしれませんね…

    javascriptで全角文字のみを抽出する正規表現(半角カナにも対応) - だいたいよくできてる。
  • PHPの正規表現 – デリミタのあれこれ | Vimとボクと、ときどき、PHP

    PHPの正規表現 – デリミタのあれこれ PHPで正規表現を扱う関数としては、preg_matchとかpreg_replaceとかがよく使われるでしょうか?これらはPCRE関数と呼ばれるようで、PCREとはPerl互換の正規表現のことらしいです。 以前はPOSIX拡張の正規表現が使えるeregとかありましたが、マニュアルに非推奨とありますので、PHPの正規表現と言った場合はPCREということになるでしょうか。 では、両者の違いは何?ということになりますが、最も大きな違いは「PCREはパターンの前後にデリミタを付ける必要がある」という点でしょう。 // ハイフンつなぎの日付文字列を判定する例(簡易版) $date = '2015-01-01'; if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $date)) { // マッチする場合の処理... } 上記の例の

  • 無料&登録不要で正規表現を図示してくれる「Regexper」を使ってみた

    アプリ開発の場面では、入力されたテキスト内に誕生日などの特定パターンの文字列が含まれているかを確認したり、別の文字列に置き換えたりするときに、正規表現は必須です。しかし、正規表現を誤ってしまうと、アプリケーションによっては、データを破壊してしまったり、誤作動を起こすリスクがあるのも事実。このため正規表現を変更する場合、事前に試験用の環境で試すのが普通ですが、開発現場によっては、試験用の環境であっても簡単に適用できない場合や、番用の環境しかないなど、試す場面が限られることが考えられます。このとき、机上での検証を行いますが、人の手による検証は、どれだけ実力のある人がチェックしても誤るリスクがあり、不安を拭うことはできません。「Regexper」を使えば、入力した正規表現を無料で、機械的に図示して、読みやすくしてくれるとのこと。複雑な正規表現を入力しても読みやすくなるのか、実際に使ってみました

    無料&登録不要で正規表現を図示してくれる「Regexper」を使ってみた
  • 漢字、ひらがな、カタカナにマッチさせる方法 | 正規表現

    Unicodeプロパティがサポートされない場合 文字クラスで、文字が定義されているコードの範囲を指定します。このときShift_JISなどの[亜-熙]では不十分で、Unicodeブロックの範囲を指定する必要があります。 ひらがな Hiragana (Unicode block) - Wikipedia 表記1 … [\u3041-\u3096] 表記2 … [\x{3041}-\x{3096}] カタカナ Katakana (Unicode block) - Wikipedia 表記1 … [\u30A1-\u30FA] 表記2 … [\x{30A1}-\x{30FA}] 表記1 … [々〇〻\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF] 表記2 … [々〇〻\x{3400}-\x{9FFF}\x{F900}-\x{FA