正規表現の入門

Nov 30, 2016 am 09:42 AM
はじめる 正規表現

cjx は現在クローラー プロジェクトに取り組んでおり、ページから必要なコンテンツを緊急にクロールする必要がありますが、論理的判断によってコンテンツを取得するのは複雑すぎます。正規表現という強力なツールを持っていることは非常に幸運であり、Cjx は以前から正規表現についてある程度の知識を持っていました。しかし、私は常に理解が不完全な状態にあり、満足のいく正規表現を自分で効果的に書くのは困難です。最近、ジェフリー E.F. フリード著『Mastering Regular Expressions』というタイトルの本をインターネットで見つけました。 最初の章を読んだ後、私は突然、いくつかの規則的なルールを書くことができることに気づきました、はは~~~ cjx は突然、敗者から背が高く、お金持ちで、ハンサムな人にアップグレードされたように感じました... 以下は、本の最初の章~

行頭と行末

おそらく最も理解しやすいメタキャラクターは、テキスト行をチェックするときのキャレット記号 ^ とドル記号 $ です。^ は行頭、$ は行頭を表します。終わり。

読者は、正規表現を文字に従って理解する習慣を身に付けることが最善です。 たとえば、これは行わないでください:

^cat は cat

で始まる行に一致しますが、次のように理解する必要があります:

^cat は行の最初の文字が c で始まり、その後に a が続くテキストに一致します。 t が続きます。

これら 2 つの解釈の結果に違いはありませんが、新しく出現した正規表現は文字で解釈した方が内部ロジックを理解しやすくなります。

複数の文字の 1 つと一致します

"grey" という単語を検索する必要があり、それが "gray" と書かれているかどうかが不明な場合は、正規表現構造 [...] を使用できます。これにより、ユーザーはどこかに一致すると予想される文字 (通常は文字グループと呼ばれます) をリストすることができます。

つまり、 gr[ea]y は次のことを意味します: 最初に g を見つけ、次に r、次に a または e、そして最後に y を見つけます。

文字グループ内では、文字メタ文字 '-' は範囲を表します: とまったく同じです。また、文字範囲を通常のテキストと自由に組み合わせることができます:

[0-9A-Z_!.?] は、数字、大文字、アンダースコア、感嘆符、ピリオド、または疑問符に一致します。

排他的な文字グループ

[...] を [^...] に置き換えます。この文字グループは、リストにない文字と一致します。例: [^1-6] は、1 ~ 6 を除く任意の文字に一致します。このグループの先頭にある ^ は除外を意味するため、ここにリストされるのは、一致させたい文字ではなく、一致させたくない文字です。

任意の文字と一致するためにドットを使用する

メタキャラクター 任意の文字と一致するために使用される文字グループを記述する簡単な方法です。式の中で「任意の文字に一致する」プレースホルダーを使用する必要がある場合は、ドットを使用すると便利です。


任意の部分式と一致します

メタキャラクター | は、「または」を意味する非常に簡潔なメタキャラクターです。これを利用して、さまざまな部分式を組み合わせて合計式を作成でき、この合計式は任意の部分式と一致します。

オプション要素

それでは、色と色のマッチングを見てみましょう。それらの違いは、次の単語の u が前の単語よりも 1 つ多いことです。この問題を解決するには coloru?r を使用できます。メタ文字 ? (つまり、疑問符) はオプションのオプションを表します。文字の後に追加することは、その文字がここに表示されることを許可することを意味しますが、その文字の出現は一致が成功するための必須条件ではありません。

その他の数量詞:

+ (プラス記号) と * (アスタリスク) の繰り返しは疑問符と同様に機能します。メタ文字 + は、直前の要素が 1 回以上出現することを意味し、* は、直前の要素が何度でも出現するか、まったく出現しないことを意味します。
次に、高さ 14 の水平線を表す


のような TAG を見てください。また、HR と SIZE の間にはスペースが必要ですが、等号の両側にスペースを入れることはできません。そのため、Web ページでそのような HR を見つけたい場合、式は
として記述されます。場合によっては、HR の SIZE 値が可変であり、SIZE 属性が存在しない場合があります。次に、式は

括弧と後方参照

これまで、括弧の 2 つの使用法を見てきました: 1. 複数のオプションの範囲を制限する; 2. 複数の文字を 1 つの単位に結合し、疑問符やアスタリスクなどの数量詞によって使用されます。ここで、括弧の別の使用法である後方参照を紹介したいと思います。これは egrep では一般的ではありませんが (一般的な GNU バージョンはこの機能をサポートしています)、他のツールでは非常に一般的です。
後方参照をサポートするツール ソフトウェアでは、括弧内の部分式と一致するテキストを「記憶」できます。これらのテキストが何であっても、メタ文字シーケンス 1 はそれらを記憶できます。

もちろん、式の中で複数の括弧を使用することもできます。次に、1、2、3 などを使用して、1 番目、2 番目、および 3 番目の括弧のセットと一致するテキストを表します。括弧は、左から右に左括弧 '(' の出現順に実行されるため、([a-z])([0-9])12 の 1 は [a-z] の一致内容を表し、2 は [0] を表します。 - 9] コンテンツの一致

マジック エスケープ
場合によっては、.+*? などのいくつかの記号を一致させる必要があるかもしれませんが、同時にそれらがメタ記号であることがわかるため、それらの前にエスケープを追加できます。シンボルは、これらの特別なメタシンボルと一致するために使用されます

いくつかの便利な略語
t タブ文字
n 改行文字
r キャリッジリターン文字
s スペース、改行、タブインデントなどの任意の空白文字すべての空白文字
S s
w [a-zA を除く任意の文字] -Z0-9] は w+ で非常に便利で、単語
W w を除く任意の文字
d [0-9]、つまり数字
D d を除く任意の文字、つまり [^0-] と一致させるために使用できます。 9]


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

パデュー大学による、時間をかける価値のある拡散モデルのチュートリアル パデュー大学による、時間をかける価値のある拡散モデルのチュートリアル Apr 07, 2024 am 09:01 AM

拡散はより良いものを模倣するだけでなく、「創造」することもできます。拡散モデル(DiffusionModel)は、画像生成モデルである。 AI 分野でよく知られている GAN や VAE などのアルゴリズムと比較すると、拡散モデルは異なるアプローチを採用しており、その主な考え方は、最初に画像にノイズを追加し、その後徐々にノイズを除去するプロセスです。ノイズを除去して元の画像を復元する方法は、アルゴリズムの中核部分です。最後のアルゴリズムは、ランダムなノイズを含む画像から画像を生成できます。近年、生成 AI の驚異的な成長により、テキストから画像への生成、ビデオ生成など、多くのエキサイティングなアプリケーションが可能になりました。これらの生成ツールの背後にある基本原理は、以前の方法の制限を克服する特別なサンプリング メカニズムである拡散の概念です。

ワンクリックでPPTを生成!キミ: まずは「PPT出稼ぎ労働者」を普及させましょう ワンクリックでPPTを生成!キミ: まずは「PPT出稼ぎ労働者」を普及させましょう Aug 01, 2024 pm 03:28 PM

キミ: たった 1 文の PPT がわずか 10 秒で完成します。 PPTはとても面倒です!会議を開催するには PPT が必要であり、週次報告書を作成するには PPT が必要であり、投資を勧誘するには PPT を提示する必要があり、不正行為を告発するには PPT を送信する必要があります。大学は、PPT 専攻を勉強するようなものです。授業中に PPT を見て、授業後に PPT を行います。おそらく、デニス オースティンが 37 年前に PPT を発明したとき、PPT がこれほど普及する日が来るとは予想していなかったでしょう。 PPT 作成の大変な経験を話すと涙が出ます。 「20 ページを超える PPT を作成するのに 3 か月かかり、何十回も修正しました。PPT を見ると吐きそうになりました。」 「ピーク時には 1 日に 5 枚の PPT を作成し、息をすることさえありました。」 PPTでした。」 即席の会議をするなら、そうすべきです

CVPR 2024 のすべての賞が発表されました!オフラインでのカンファレンスには1万人近くが参加し、Googleの中国人研究者が最優秀論文賞を受賞した CVPR 2024 のすべての賞が発表されました!オフラインでのカンファレンスには1万人近くが参加し、Googleの中国人研究者が最優秀論文賞を受賞した Jun 20, 2024 pm 05:43 PM

北京時間6月20日早朝、シアトルで開催されている最高の国際コンピュータビジョンカンファレンス「CVPR2024」が、最優秀論文やその他の賞を正式に発表した。今年は、最優秀論文 2 件と学生優秀論文 2 件を含む合計 10 件の論文が賞を受賞しました。また、最優秀論文ノミネートも 2 件、学生優秀論文ノミネートも 4 件ありました。コンピュータービジョン (CV) 分野のトップカンファレンスは CVPR で、毎年多数の研究機関や大学が集まります。統計によると、今年は合計 11,532 件の論文が投稿され、2,719 件が採択され、採択率は 23.6% でした。ジョージア工科大学による CVPR2024 データの統計分析によると、研究テーマの観点から最も論文数が多いのは画像とビデオの合成と生成です (Imageandvideosyn

ベアメタルから 700 億のパラメータを備えた大規模モデルまで、チュートリアルとすぐに使えるスクリプトがここにあります ベアメタルから 700 億のパラメータを備えた大規模モデルまで、チュートリアルとすぐに使えるスクリプトがここにあります Jul 24, 2024 pm 08:13 PM

LLM が大量のデータを使用して大規模なコンピューター クラスターでトレーニングされていることはわかっています。このサイトでは、LLM トレーニング プロセスを支援および改善するために使用される多くの方法とテクノロジが紹介されています。今日、私たちが共有したいのは、基礎となるテクノロジーを深く掘り下げ、オペレーティング システムさえ持たない大量の「ベア メタル」を LLM のトレーニング用のコンピューター クラスターに変える方法を紹介する記事です。この記事は、機械がどのように考えるかを理解することで一般的な知能の実現に努めている AI スタートアップ企業 Imbue によるものです。もちろん、オペレーティング システムを持たない大量の「ベア メタル」を LLM をトレーニングするためのコンピューター クラスターに変換することは、探索と試行錯誤に満ちた簡単なプロセスではありませんが、Imbue は最終的に 700 億のパラメータを備えた LLM のトレーニングに成功しました。プロセスが蓄積する

技術初心者必読:C言語とPythonの難易度分析 技術初心者必読:C言語とPythonの難易度分析 Mar 22, 2024 am 10:21 AM

タイトル: 技術初心者必読: 具体的なコード例を必要とする C 言語と Python の難易度分析 今日のデジタル時代において、プログラミング技術はますます重要な能力となっています。ソフトウェア開発、データ分析、人工知能などの分野で働きたい場合でも、単に興味があってプログラミングを学びたい場合でも、適切なプログラミング言語を選択することが最初のステップです。数あるプログラミング言語の中でも、C言語とPythonは広く使われているプログラミング言語であり、それぞれに独自の特徴があります。この記事ではC言語とPythonの難易度を分析します。

AIの活用 | AIが一人暮らしの女の子の生活ビデオブログを作成、3日間で数万件の「いいね!」を獲得 AIの活用 | AIが一人暮らしの女の子の生活ビデオブログを作成、3日間で数万件の「いいね!」を獲得 Aug 07, 2024 pm 10:53 PM

Machine Power Report 編集者: Yang Wen 大型モデルや AIGC に代表される人工知能の波は、私たちの生活や働き方を静かに変えていますが、ほとんどの人はまだその使い方を知りません。そこで、直感的で興味深く、簡潔な人工知能のユースケースを通じてAIの活用方法を詳しく紹介し、皆様の思考を刺激するコラム「AI in Use」を立ち上げました。また、読者が革新的な実践的な使用例を提出することも歓迎します。ビデオリンク: https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ 最近、Xiaohongshu で一人暮らしの女の子の生活 vlog が人気になりました。イラスト風のアニメーションといくつかの癒しの言葉を組み合わせれば、数日で簡単に習得できます。

RAG の 12 の問題点を数え上げ、NVIDIA シニア アーキテクトが解決策を教える RAG の 12 の問題点を数え上げ、NVIDIA シニア アーキテクトが解決策を教える Jul 11, 2024 pm 01:53 PM

検索拡張生成 (RAG) は、検索を使用して言語モデルを強化する手法です。具体的には、言語モデルは回答を生成する前に、広範な文書データベースから関連情報を取得し、この情報を使用して生成プロセスをガイドします。このテクノロジーにより、コンテンツの精度と関連性が大幅に向上し、幻覚の問題を効果的に軽減し、知識の更新速度が向上し、コンテンツ生成の追跡可能性が向上します。 RAG は間違いなく、人工知能研究の中で最もエキサイティングな分野の 1 つです。 RAGについて詳しくは、当サイトのコラム記事「大型モデルの欠点を補うことに特化したRAGの新展開とは?」を参照してください。このレビューはそれを明確に説明しています。」しかし、RAG は完璧ではなく、ユーザーはそれを使用するときにいくつかの「問題点」に遭遇することがよくあります。最近、NVIDIA の生成 AI 高度なソリューション

PHP 正規表現の検証: 数値形式の検出 PHP 正規表現の検証: 数値形式の検出 Mar 21, 2024 am 09:45 AM

PHP 正規表現の検証: 数値形式の検出 PHP プログラムを作成する場合、ユーザーが入力したデータを検証する必要がよくあります。一般的な検証の 1 つは、データが指定された数値形式に準拠しているかどうかを確認することです。 PHP では、正規表現を使用してこの種の検証を行うことができます。この記事では、PHP 正規表現を使用して数値形式を検証する方法を紹介し、具体的なコード例を示します。まず、一般的な数値形式の検証要件を見てみましょう。 整数: 0 ~ 9 の数字のみが含まれ、プラスまたはマイナス記号で始めることができ、小数点は含まれません。浮動小数点

See all articles