导航:首页 > 编程语言 > phppregmatch用法

phppregmatch用法

发布时间:2022-02-28 13:08:11

❶ preg_match用法

preg_match -- 进行正则表达式匹配
说明
int preg_match ( string pattern, string subject [, array matches [, int flags]])

在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。

如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

flags 可以是下列标记:

PREG_OFFSET_CAPTURE
如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自 php 4.3.0 起可用。

flags 参数自 PHP 4.3.0 起可用。

preg_match() 返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。preg_match_all() 则相反,会一直搜索到 subject 的结尾处。如果出错 preg_match() 返回 FALSE。

提示: 如果只想查看一个字符串是否包含在另一个字符串中,不要用 preg_match()。可以用 strpos() 或 strstr() 替代,要快得多。

例子 1. 在文本中搜索“php”

<?php
// 模式定界符后面的 "i" 表示不区分大小写字母的搜索
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

例子 2. 搜索单词“web”

<?php
/* 模式中的 \b 表示单词的边界,因此只有独立的 "web" 单词会被匹配,
* 而不会匹配例如 "webbing" 或 "cobweb" 中的一部分 */
if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}

if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

例子 3. 从 URL 中取出域名

<?php
// 从 URL 中取得主机名
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$host = $matches[2];

// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

❷ PHP中使用preg_match()匹配时,点号与横线怎么处理

中横杆在本身就属于正则 的一个语法
比如
A-Z表示从A到Z,而你要直接这个符号,那就应该用反斜杠转义一下
\-这样,
个人看法啊!

其实你上面的代码似乎可以简化一下

return preg_match("/^[0-9a-zA-Z_\.\-]+$/", $user) ? true : false;
这样岂不是简单明了

❸ php中preg_match的用法问题

preg_match("/<li (.*?)><span>(.*?)<\/span><strong id=\"J_StrPrice\" >(.*?)<\/strong>(.*?)<\/li>/i",$str,$arr);
$p=$arr[3];

❹ php preg_match()怎么使用

$s="abdcddd<script>alert('ok');</script>";
$rule='#<.+>#';
echopreg_replace($rule,'',$s);

❺ php preg match的问题

$str='你的那段代码';
$preg='/<a[sS]*?href="javascript:subText_new([^,]*?,[^,]*?,'?([d+]*?)'?);">/i';
$result=array();
preg_match_all($preg,$str,$result);//还不如一次性匹配所有的可能性

var_mp($result);
//你需要的结果在$result[3]中
die;

❻ PHP函数preg_match_all正则表达式的基本使用详细解析

了解正则表达式之前,须要掌握一些常用的正则表达式的基础知识,这些如果能记得最好记得,记不住须要用的时候能查到就行,就多个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加细致的说明。
preg_match_all函数具体说明大家可以查看PHP手册,本文运用
preg_match_all用于测试正则表达的效果。
实例代码:
复制代码
代码如下:
$html
=
'<div
id="biuuu">jb51.net</div><div
id="biuuu_2">jb51.net2</div><div
id="biuuu_3">jb51.net3</div>';
实例要求:分别将每一个DIV元素的ID和内容取出,如biuuu,biuuu_2,biuuu_3,jb51.net,jb51.net2和jb51.net3(一些常用的抓站要领就是这样匹配的)
分析:字符串是一个基本的HTML元素,每一个DIV元素对应该一个ID和内容,并且是独立的,首先考虑如何
取出一个DIV内的ID值和内容,如:jb51.net,然后匹配其它类似的元素。一个DIV中须要取出两个值,也就是两个匹配的表达式,第一个表达式用于匹配ID值(biuuu),第二个表达式用于匹配ID的内容(jb51.net),正则表达式常用的表达式运用小括号,那么前面的元素将会变成如下形式:
<div
id="(biuuu)">(jb51.net)</div>
<div
id="(表达式1)">(表达式2)</div>
好,运用如上小括号把须要匹配的区域执行
了划分,接下来就是如何
匹配各个表达式内的内容,我们猜想一个ID可能是字母,数字或下划线,那这就变得基本了,运用中括号就可以实现,如下:
表达式1:[a-zA-Z0-9_]+
(表示匹配大小写字母,数字和下划线)
那如何
匹配表达式2,因为ID的内容可以是任意的字符,但是要留心,不能匹配<或>字符,因为如果匹配这两个字符将会把后面运用的DIV都匹配出来,因此须要排除这两个字符开始的元素,也就是不匹配以<或>字符,如下:
表达式2:[^<>]+
(表示不匹配<和>字符)
这样,须要匹配的子表达式就实现了,但是还要须要匹配一个
的表达式,要领如下:
表达式:/
'\"(表达式1)\"'>(表达式2)<\/div>/
留心其中的双引号"和/须要运用
\转义字符转义,然后把前面两个表达式放进去,
如下:
'\"([a-z0-9_]+)\"'>/<div
id=\"([a-z0-9_]+)\">([^<>]+)<\/div>/
这样就实现一个匹配每一个DIV元素ID值和内容的正则表达式,然后运用
preg_match_all函数测试如下:
复制代码
代码如下:
$html
=
'<div
id="biuuu">jb51.net</div><div
id="biuuu_2">jb51.net2</div><div
id="biuuu_3">jb51.net3</div>';
preg_match_all('/<div\sid=\"([a-z0-9_]+)\">([^<>]+)<\/div>/',$html,$result);
var_mp($result);
结果:
复制代码
代码如下:
array(3)
{
[0]=>
array(3)
{
[0]=>
string(30)
"<div
id="biuuu">jb51.net</div>"
[1]=>
string(33)
"<div
id="biuuu_2">jb51.net2</div>"
[2]=>
string(33)
"<div
id="biuuu_3">jb51.net3</div>"
}
[1]=>
array(3)
{
[0]=>
string(5)
"biuuu"
[1]=>
string(7)
"biuuu_2"
[2]=>
string(7)
"biuuu_3"
}
[2]=>
array(3)
{
[0]=>
string(8)
"jb51.net"
[1]=>
string(9)
"jb51.net2"
[2]=>
string(9)
"jb51.net3"
}
}
共有三个表达式,分别显示每一个表达式匹配的值,并以数组的形式存储,这样就把每一个DIV元素的ID和内容取出。运用正则表达式最主要还是要知道须要什么,然后跟椐须要执行
匹配,并且思路清晰,并适当的借助preg_match_all函数执行
输出调试,非常方便。

❼ PHP preg_match函数的用法 不是很清楚

preg_match 根据正则匹配字符串用的,对于新手来说比较复杂,不太容易理解。可以看看php的正则基本规则。理解之后就很不是很难了
第一段是根据第二个参数$user_number变量,匹配一个身份证号的(不完全肯定)(1)\d{17} :长度为17的必须是数字的字符串,(2)[\d|X]:长度为1的数字或“X”,(3)|\d{15}或者是长度为15的数字字符串。把匹配的结果保存到$counts[0]中。

第二个是电话号的,具体你可以自己再研究一下。

❽ 请问:php中的preg_match()函数运用的问题

php中preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0

❾ php中preg_match的用法,手册上面我看的不是很明白,请高手帮我看下下面的代码,如何用prge_match进行匹配

据官方PHP手册上的说明,当使用PCRE函数的时候, 模式需要由分隔符闭合包裹。 分隔符 可以使用任意非字母数字, 非反斜线, 非空白字符。经常使用的分隔符是正斜线(/), hash符号(#) 以及取反符号(~). 下面的例子都是使用合法分隔符的模式。

你的正则表达式没用用分隔符进行包裹,"<title>(.*)</title>" 可以 修改为:
%<title>(.*?)</title>%si
其中:
% 代表 分隔符
s 代表 不匹配新行
i 代表 不区分大小写

示例代码如下,运行正常:

<?php
header('Content-type:text/html;charset=utf-8');
$url="http://www.weather.com.cn/";
$content=file_get_contents($url);
$pa = '%<title>(.*?)</title>%si';
preg_match($pa,$content,$a);
print_r($a);
?>

❿ PHP中使用 preg_match 模糊匹配

preg_match('模式', '要匹配的内容', '匹配出来的东西放到这个数组里')

阅读全文

与phppregmatch用法相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:542
可以中文解压的解压软件 浏览:595
安卓卸载组件应用怎么安装 浏览:915
使用面向对象编程的方式 浏览:342
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:435
淮安数据加密 浏览:295
魔高一丈指标源码 浏览:984
松下php研究所 浏览:171
c回调java 浏览:403
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315