当前位置:首页 » 编程语言 » php正则表达式使用

php正则表达式使用

发布时间: 2022-08-01 10:19:14

php中正则表达式是如何使用的

如果你的正则是对的话,代码应该如下

$reg='[a-zA-zs]+';
preg_match($reg,$string,$matchs);
//结果
$result='';
foreach($matchs[1]as$m){
$result.=$m
}

Ⅱ php正则表达式的使用问题

第一个你匹配的是http://,然后接下来是匹配不包含/的
那么,最后怎么不是www.php.net了呢?
你这匹配了2部分,返回的也是2部分啊
也许你对
Array
(
[0] => http://www.php.net
[1] => http://
[2] => www.php.net
)
有疑问,感觉是 返回3个了吧
0 是整条正则表达式匹配的结果
1是正则中第一个括号中匹配的结果
2是正则中第二个括号中匹配的结果
......
依此论推

Ⅲ php的正则表达式怎么用

一般不会出现[[]]这样的吧
有专门关于正则表达式的电子书 你可以多看看
正则对新手是最难学的,但是很实用,必学的东西。

Ⅳ php正则表达式

这里涉及到正则表达式中得子串捕获的概念。php中的正则表达式使用的是pcre正则库,因此使用方式上和pcre是相同的,只不过是为了使用方便封装了一起便捷的操作而已。preg_match函数和preg_match_all函数用于在php中进行正则表达式的相关处理。下面看下preg_match函数的定义:intpreg_match(string$pattern,string$subject[,array&$matches])在$subject中查询$pattern,如果找到则把匹配的字符串存储在$matches中。$matches[0]中存放整个匹配的字符串,$matches[i]中存放匹配到的第i个捕获子串。题目的解决方法:$pattern="/^NAME(.*){$/";preg_match($pattern,$string,$match);echo$match[1];//$match[1]为提取的NAME和{之间的内容。关于捕获组信息($match的信息)详情,可以参考文档:http://wang

Ⅳ 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正则表达式

'/^\s*{(\w+)}\s*=/' 代表“词首位置起或有空白{1个或以上的字母串(该串编号1)}或有空白”
替换成,'$\\1=' 含义是"$编号1的串="

Ⅶ 关于php正则表达式用法

简单回答就是:
(?=xxx)是匹配当前位置的后面是xxx,带不包括xxx
其叫做 lookahead assertion

而你希望匹配
href="http开头的地址"


src="http开头的地址"
中的 http开头的地址 部分,那么应该是用
(?<=xxx)
即:
(?<=href|src)
这个叫做 positive lookbehind assertion

具体详细例子和代码演示,可以参看我的:
【教程】详解Python正则表达式之: (?=…) lookahead assertion 前向匹配 /前向断言

【教程】详解Python正则表达式之: (?<=…) positive lookbehind assertion 后向匹配 /后向断言

官网的语法,自己搜:
PCRE 正则语法
就可以找到在线官网的内容的,其中相关的”断言“的部分内容。

(此处不给贴地址,请自己用google搜索帖子标题,即可找到帖子地址)

Ⅷ PHP常用正则表达式汇总

1.
^d+$"//非负整数(正整数
+
0)
2.
"^[0-9]*[1-9][0-9]*$"//正整数
3.
"^((-d+)|(0+))$"//非正整数(负整数
+
0)
4.
"^-[0-9]*[1-9][0-9]*$"//负整数
5.
"^-?d+$"//整数
6.
"^d+(.d+)?$"//非负浮点数(正浮点数
+
0)
7.
"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数
8.
"^((-d+(.d+)?)|(0+(.0+)?))$"//非正浮点数(负浮点数
+
0)
9.
"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点数
10.
"^(-?d+)(.d+)?$"//浮点数
11.
"^[A-Za-z]+$"//由26个英文字母组成的字符串
12.
"^[A-Z]+$"//由26个英文字母的大写组成的字符串
13.
"^[a-z]+$"//由26个英文字母的小写组成的字符串
14.
"^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串
15.
"^w+$"//由数字、26个英文字母或者下划线组成的字符串
16.
"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"//email地址
17.
"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"//url
18.
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/
//
年-月-日
19.
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/
//
月/日/年
20.
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"
//Emil
21.
/^((+?[0-9]{2,4}-[0-9]{3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?$/
//电话号码
22.
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"
//IP地址
23.
匹配中文字符的正则表达式:
[u4e00-u9fa5]
24.
匹配双字节字符(包括汉字在内):[^x00-xff]
25.
匹配空行的正则表达式:n[s|
]*r
26.
匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*)
/>/
27.
匹配首尾空格的正则表达式:(^s*)|(s*$)
28.
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
29.
匹配网址URL的正则表达式:^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
30.
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
31.
匹配国内电话号码:(d{3}-|d{4}-)?(d{8}|d{7})?
32.
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
33.
元字符及其在正则表达式上下文中的行为:
34.
将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
35.
^
匹配输入字符串的开始位置。如果设置了
RegExp
对象的Multiline
属性,^
也匹配
’n’

’r’
之后的位置。
36.
$
匹配输入字符串的结束位置。如果设置了
RegExp
对象的Multiline
属性,$
也匹配
’n’

’r’
之前的位置。
37.
*
匹配前面的子表达式零次或多次。
38.
+
匹配前面的子表达式一次或多次。+
等价于
{1,}。
39.
?
匹配前面的子表达式零次或一次。?
等价于
{0,1}。
40.
{n,}
n
是一个非负整数,至少匹配n
次。
41.
{n,m}
m

n
均为非负整数,其中n
<=
m。最少匹配
n
次且最多匹配
m
次。在逗号和两个数之间不能有空格。

Ⅸ PHP正则表达式到底怎么用

javascript的正则表达式和php正则表达式在细节上是不同的
使用php的正则去匹配邮箱,可以用网络搜索关键字:
"php 正则表达式 邮箱"

参考这个:
$email = "[email protected]";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo "Your email is ok.";
} else {
echo "Wrong email address format";
}

热点内容
安卓手机锁了怎么开 发布:2025-01-23 17:21:18 浏览:136
经济学算法 发布:2025-01-23 17:13:46 浏览:420
如何和软件联系服务器 发布:2025-01-23 17:13:00 浏览:799
javacrc16算法 发布:2025-01-23 17:11:31 浏览:224
编程加图片 发布:2025-01-23 17:10:33 浏览:566
中国风网站源码 发布:2025-01-23 17:05:56 浏览:679
pythonfilter用法 发布:2025-01-23 17:04:26 浏览:568
java转number 发布:2025-01-23 16:58:11 浏览:476
解压的英语作文 发布:2025-01-23 16:45:05 浏览:969
湖南首选dns服务器地址 发布:2025-01-23 16:06:39 浏览:874