php正则匹配括号
① php 正则表达式 匹配1到32 如何匹配 这样可不可以[1-32]
正则是按位解析匹配的,所以[1-32]是不行的。
解析:
1、1-32,包含1位数(1-9)和2位数(10-32)
2、10-32必须切割,10-19和20-29形式一样,得到[12][0-9],30-32有3[012]
3、因此得到[1-9]|[12][0-9]|3[012]
4、考虑全匹配,因此得到/^(?:[1-9]|[12][0-9]|3[012])$/,
?:表示不捕获匹配,意思就是不保存括号数据
最终:
$pattern='/^(?:[1-9]|[12][0-9]|3[012])$/';//这个就是1-32的正则啦
② PHP正则匹配问题preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);
使用括号会对匹配结果进行分组。在匹配结果中,键为0的表示整个正则匹配的内容,之后的是对应的括号中匹配的东西。
另外,你这里使用的是preg_match,所以只会匹配一个结果,如果想匹配所有的话,就使用preg_match_all
为了应正上面的描述,你可以运行以下代码试试:
$dirinfo = array();
preg_match_all("/([a-zA-Z]+)\d+/","tech01/web",$dirinfo);
print_r($dirinfo);
③ php 正则 匹配 括号内数字
你的已经是写“对”了的,只不过你没有提取数字而已。改一下模式:'/\(([\s\S]*?)\)/',这样就能利用$matchPlayers[1]得到你要的数字了。在模式中,括号有子模式的作用,也就是从左到右,括号引起的数据从1开始到n,在匹配结果中用下标1到n提取。$matchPlayers[0]则是总结果。详细参考PHP手册。
④ PHP 正则匹配中括号的内容
$s1 = '<用户名 name="flase"><![name[admin]]></用户名>';
$result = preg_replace ( "/<用户名[^>]*>[^\[]*\[[^\[]*\[([^\[]*)\]\].*/", "$1", $s1 );
echo $result . "\n";
⑤ PHP怎么用正则表达式匹配圆括号
preg_match("/\(.*\)/","要匹配的字符串");()在正则中属于正则的字符,必须用\转义成普通的字符
⑥ php正则,匹配,能不能用中括号
不行,中括号和小括号在正则表达式中功能完全不一样。
小括号是分组,中括号是字符集合,只有当小括号中各个分组都是一个字符的极端情况下,才能以中括号的方式改写,如:(a|b|c)基本等价于[abc],其稍许的区别也还有,在于“捕获”的概念。
建议你找一个正则表达式的教程看看。
⑦ 求大神,急,在线等,PHP正则匹配输入法的 ()括号 和不带输入法的括号()
<?php
$str='三星GALAXY(s40)';
$str=preg_replace('/[(|(][s|S]+[)|)]/','',$str);
echo$str;
⑧ 请教PHP正则里中括号和圆括号的区别
中括号[] :里面集合中的其中一个,任选其一的意思,如[09],意思就是0或9之间中的其中一个
园括号():括号里面完全匹配,比如(123)则匹配的过程中必须有123连着的完全匹配
总结下:
[123]:有1或2或3的话都能匹配到
(123):有123连着的才能匹配到,1 2 3都有,顺序不能错
⑨ PHP用正则匹配字符串最后一个小括号的的内容,例如:这是个字符串(1),匹配出“1”。
preg_match('/\((.*)\)/i',$str);