ホームページ バックエンド開発 PHPチュートリアル 第 9 章 正規表現_PHP チュートリアル

第 9 章 正規表現_PHP チュートリアル

Jul 13, 2016 am 10:34 AM
aspnet ソフトウェアプログラミング

注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。

学习要点:
1.正则表达式语法(Perl 风格)
2.正则表达式中的元素
3.Perl 风格函数

 

处理字符串时,有很多较为复杂的字符串用普通的字符串处理函数无法干净的完成。比
如说,可能需要验证一个Email 地址是否合法,为此需要查看许多不容易检查的规则。这正
是正则表达式的用武之地。正则表达式是功能强大而简明的字符组,其中可以包含大量的逻
辑,特别值得一提的是正则表达式相当简短。

一.正则表达式语法(Perl风格)

Perl 一直被认为是最伟大的解析语言之一,它提供了一种全面的正则表达式,即使是最
复杂的字符串模式,也可以用这种正则表达式语言搜索和替换。PHP 开发人员认识到,与
其重新发明正则表达式,不如让PHP 用户直接使用声名赫赫的Perl 正则表达式语言,即Perl
风格的函数。
模式规则:/php/ 在字符串前后加上两条斜杠即可。
匹配函数:preg_match()函数在字符串中搜索模式,如果存在则返回true,否则返回false。

<?<span php
</span><span preg_match</span>('/php/','php'<span );
</span>?>
ログイン後にコピー

二.正则表达式中的元素

正则表达式中包含三种元素分别为:量词、元字符、修饰符

量词

元字符

修饰符

三.Perl风格函数

PHP 为使用Perl 兼容的正则表达式搜索字符串提供了7 个函数,包括:preg_grep()、
preg_match()、preg_match_all()、preg_auote()、preg_replace()、preg_replace_callback()和
preg_split()。
搜索字符串:preg_grep()函数搜索数组中的所有元素,返回由与某个模式匹配的所有元
素组成的数组。

<?<span php
</span><span $language</span> = <span array</span>('php','asp','jsp','python','ruby'<span );
</span><span print_r</span>(<span preg_grep</span>('/p$/',<span $language</span><span ));
</span>?>
ログイン後にコピー

搜索模式:preg_match()函数在字符串中搜索模式,如果存在则返回true,否则返回false。

<?<span php
</span><span echo</span> <span preg_match</span>('/php[1-6]/','php5'<span );
</span>?>
ログイン後にコピー

电子邮件验证小案例(分组应用)

<?<span php
</span><span $mode</span> = '/([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})/'<span ;
</span><span $string</span> = 'yc60.com@gmail.com'<span ;
</span><span echo</span> <span preg_match</span>(<span $mode</span>,<span $string</span><span );
</span>?>
ログイン後にコピー

匹配模式的所有出现:preg_match_all()函数在字符串中匹配模式的所有出现,然后将所
有匹配到的全部放入数组。

<?<span php
</span><span preg_match_all</span>('/php[1-6]/','php5sdfphp4sdflljkphp3sdlfjphp2',<span $out</span><span );
</span><span print_r</span>(<span $out</span><span );
</span>?>
ログイン後にコピー

定界特殊的正则表达式:preg_quote()在每个对于正则表达式语法而言有特殊含义的字
符前插入一个反斜线。这些特殊字符包含:$ ^ * () + = {} [] | \\ : <>。

<?<span php
</span><span echo</span> <span preg_quote</span>('PHP的价格是:$150'<span );
</span>?>
ログイン後にコピー

替换模式的所有出现:preg_replace()函数搜索到所有匹配,然后替换成想要的字符串返
回出来。

<?<span php
</span><span echo</span> <span preg_replace</span>('/php[1-6]/','python','This is a php5,This is a php4'<span );
</span>?>
ログイン後にコピー

ubb 小案例:贪婪问题+分组使用()

<?<span php
</span><span $mode</span> = '/\[b\](.*)\[\/b\]/U'<span ;
</span><span $replace</span> = '<strong>\1</strong>'<span ;
</span><span $string</span> = 'This is a [b]php5[/b],This is a [b]php4[/b]'<span ;
</span><span echo</span> <span preg_replace</span>(<span $mode</span>,<span $replace</span>,<span $string</span><span );
</span>?>
ログイン後にコピー

以不区分大小写的方式将字符串划分为不同的元素:preg_split()用来分割不同的元素。

<?<span php
</span><span print_r</span>(<span preg_split</span>('/[\.@]/','yc60.com@gmail.com'<span  ));
</span>?>
ログイン後にコピー

注:目前为PHP 使用POSIX 风格的正则表达式搜索字符串提供了7 个函数,包括:ereg()、
ereg_replace()、eregi()、eregi_replace()、split()、spliti()和sql_regcase()。
PS:和Perl 风格基本相同,可以参考手册自行学习。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/748763.htmlTechArticle注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。 学习要点: 1.正则表达式语法(Perl 风格) 2.正...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。 Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。 Jul 29, 2023 pm 05:19 PM

Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。Web アプリケーションの急速な開発に伴い、パフォーマンスの最適化は開発者にとって不可欠かつ重要なタスクになっています。人気のフロントエンド フレームワークとして、Vue.js を ASP.NET と組み合わせることで、より優れたパフォーマンスの最適化と拡張を実現できます。この記事では、いくつかのヒントと提案を紹介し、いくつかのコード例を示します。 1. HTTP リクエストの削減 HTTP リクエストの数は、Web アプリケーションの読み込み速度に直接影響します。合格

生成 AI がソフトウェア開発を変える 10 の方法 生成 AI がソフトウェア開発を変える 10 の方法 Mar 11, 2024 pm 12:10 PM

翻訳者 | Chen Jun によるレビュー | Chonglou 1990 年代、ソフトウェア プログラミングというと、通常、エディタを選択し、コードを CVS または SVN コード ベースにチェックインし、コードを実行可能ファイルにコンパイルすることを意味していました。 Eclipse や Visual Studio などの対応する統合開発環境 (IDE) は、プログラミング、開発、ドキュメント化、構築、テスト、展開、その他のステップを完全なソフトウェア開発ライフ サイクル (SDLC) に統合できるため、開発者の作業効率が向上します。近年、人気のクラウド コンピューティングと DevSecOps 自動化ツールにより、開発者の包括的な能力が向上し、より多くの企業がソフトウェア アプリケーションを開発、展開、保守することが容易になりました。今日、生成 AI は次世代の開発です

ASP.NET プログラムにおける MySQL 接続プールの使用法と最適化手法 ASP.NET プログラムにおける MySQL 接続プールの使用法と最適化手法 Jun 30, 2023 pm 11:54 PM

ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化するにはどうすればよいですか?はじめに: MySQL は、高いパフォーマンス、信頼性、使いやすさを特徴とする、広く使用されているデータベース管理システムです。 ASP.NET 開発では、データ ストレージに MySQL データベースを使用することが一般的な要件です。データベース接続の効率とパフォーマンスを向上させるには、MySQL 接続プールを正しく使用し、最適化する必要があります。この記事では、ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化する方法を紹介します。

ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? Jun 29, 2023 pm 02:21 PM

ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? ASP.NET 開発では、MySQL データベースを使用するのが非常に一般的です。ただし、ネットワークまたはデータベース サーバーの理由により、データベース接続が中断されたりタイムアウトになったりする場合があります。この場合、プログラムの安定性と信頼性を確保するために、接続が切断された後に接続を再確立する必要があります。この記事では、ASP.NET プログラムで MySQL 接続を再接続する方法を紹介します。必要な名前空間を最初に参照するには、コード ファイルの先頭でそれらを参照します。

Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。 Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。 Jul 29, 2023 pm 02:37 PM

Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。今日の急速に発展するインターネット テクノロジ分野では、エンタープライズ レベルのアプリケーションの開発と展開がますます重要になっています。 Vue.js と ASP.NET は、フロントエンドとバックエンドの開発で広く使用されている 2 つのテクノロジであり、これらを組み合わせることで、エンタープライズ レベルのアプリケーションの開発と展開に多くの利点をもたらします。この記事では、コード例を通じて、Vue.js と ASP.NET を使用してエンタープライズ レベルのアプリケーションを開発およびデプロイする方法を紹介します。まず、インストールする必要があります

ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は? ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は? Jun 29, 2023 pm 12:56 PM

ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は?インターネットの発展とデータ量の増加に伴い、データベースへのアクセスと接続の需要も増加しています。データベースのパフォーマンスと安定性を向上させるために、接続プーリングは不可欠なテクノロジーになっています。この記事では、データベースの効率と応答速度を向上させるために、ASP.NET プログラムで MySQL 接続プールを正しく構成および使用する方法を主に紹介します。 1. コネクションプーリングの概念と機能 コネクションプーリングはデータベースコネクションを再利用する技術であり、プログラムの冒頭で使用されます。

ASP.NET での MySQL 接続プールのトランザクション パフォーマンスの使用と最適化 ASP.NET での MySQL 接続プールのトランザクション パフォーマンスの使用と最適化 Jun 30, 2023 pm 12:12 PM

ASP.NET プログラムで MySQL 接続プールのトランザクション パフォーマンスを正しく使用し、最適化するにはどうすればよいですか? ASP.NET プログラムでは、データベース トランザクションは非常に重要な部分です。トランザクションにより、データベースの一貫性と整合性が確保されると同時に、パフォーマンスも向上します。 MySQL データベースを使用する場合、接続リソースを管理し、パフォーマンスを最適化するために接続プールを使用することが不可欠です。まず、MySQL 接続プールの概念を簡単に理解しましょう。接続プールは、接続グループのバッファ プールです。

aspnet の組み込みオブジェクトとは何ですか? aspnet の組み込みオブジェクトとは何ですか? Nov 21, 2023 pm 02:59 PM

ASP.NET の組み込みオブジェクトには、「リクエスト」、「レスポンス」、「セッション」、「サーバー」、「アプリケーション」、 「HttpContext」、「Cache」、「Trace」、「Cookie」、および「Server.MapPath」: 1. リクエスト、クライアントによって発行された HTTP リクエストを示します; 2. レスポンス: Web サーバーによって返された HTTP 応答を示します。クライアントなど

See all articles