正则 匿名捕获 命名捕获
深知正则表达式的威力最近学习一些,偶遇问题,废话不多说上代码:
<code>$str = 'Mr.Ck-@139.com'; if(preg_match('(?:[a-zA-Z0-9_-.]+)@(?:[a-zA-Z0-9_-.]+)', $str, $match)) { print_r($match); } $str = '123,456,78,90'; if(preg_match('(?[0-9]+)(.(?[0-9]+))*', $str, $match)) { print_r($match); } </code>
错误提示:
Warning: preg_match(): Unknown modifier '@' in D:\webServ\index.php on line 15
Warning: preg_match(): Unknown modifier '(' in D:\webServ\index.php on line 23
我不知道是不是因为PHP函数的问题,我相信这个表达式应该是没问题的,只是preg_match这个函数的什么机制导致的把?
回复内容:
深知正则表达式的威力最近学习一些,偶遇问题,废话不多说上代码:
<code>$str = 'Mr.Ck-@139.com'; if(preg_match('(?:[a-zA-Z0-9_-.]+)@(?:[a-zA-Z0-9_-.]+)', $str, $match)) { print_r($match); } $str = '123,456,78,90'; if(preg_match('(?[0-9]+)(.(?[0-9]+))*', $str, $match)) { print_r($match); } </code>
错误提示:
Warning: preg_match(): Unknown modifier '@' in D:\webServ\index.php on line 15
Warning: preg_match(): Unknown modifier '(' in D:\webServ\index.php on line 23
我不知道是不是因为PHP函数的问题,我相信这个表达式应该是没问题的,只是preg_match这个函数的什么机制导致的把?
-
preg_match
的第一个参数为正则的字符串, 正则需要开始和结束标记你这里没有.
<code>'(?:[a-zA-Z0-9_-.]+)@(?:[a-zA-Z0-9_-.]+)' (?[0-9]+)(.(?[0-9]+))* </code>
改为
<code>'/(?:[a-zA-Z0-9_-.]+)@(?:[a-zA-Z0-9_-.]+)/' '/(?[0-9]+)(.(?[0-9]+))*/' </code>
- 上面的改了之后还是错误的, 错误的原因在于:
-
_-.
中括号内的-
线是有特殊含义的(请参考a-z
,0-9
). - 第二个正则中
(?
这样的写法是不正确的, PHP 的报错信息为:Warning: preg_match(): Compilation failed: unrecognized character after (? or (?- at offset 2 in T:\1.php on line xx
因为不知道你第二个具体要做啥, 可以直接删除?
号, 或者在?
号后面加上:
号解决报错的问题.
-
附改后的代码:
<code>php</code><code><?php $str = 'Mr.Ck-@139.com'; if(preg_match('/(?:<#user>[a-zA-Z0-9_\-.]+)@(?:[a-zA-Z0-9_\-.]+)/', $str, $match)) { print_r($match); } $str = '123,456,78,90'; if(preg_match('/([0-9]+)(.([0-9]+))*/', $str, $match)) { print_r($match); } </code>
号码 最终问题 我解决了

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
