PHP正则表达式提取字符串中尖括号<>、小括号()、中括号[]、大括号{}中的字符
PHP使用正则表达式提取字符串中尖括号、小括号()、中括号[]、大括号{}中的字符示例,需要的朋友可以参考下
复制代码 代码如下:
$str="你好(爱)[北京]{天安门}";
echo f1($str); //返回你好
echo f2($str); //返回我
echo f3($str); //返回爱
echo f4($str); //返回北京
echo f5($str); //返回天安门
function f1($str)
{
$result = array();
preg_match_all("/^(.*)(?:<)/i",$str, $result);
return $result[1][0];
}
function f2($str)
{
$result = array();
preg_match_all("/(?:)/i",$str, $result);
return $result[1][0];
}
function f3($str)
{
$result = array();
preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result);
return $result[1][0];
}
function f4($str)
{
$result = array();
preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result);
return $result[1][0];
}
function f5($str)
{
$result = array();
preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result);
return $result[1][0];
}
PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3:都过了验证器的验证,验证器见参考资料。
$str="一二三四五ABN420122(电话:123455)";
$reg= '/.*\(.*:(.*)\)/';//冒号和$str保持一致
$reg= '/.*\(.*(\d{6,})\)/';
$reg= '/.*\(.*[^\d](\d+)\)/';
preg_match_all($reg,$str,$want);
print_r($want[1]);
3种正则 都可以
function f1($str)
{
$result = array();
preg_match_all("/^(.*)(?:<)/i",$str, $result);
return $result[1][0];
}
2、
function f2($str)
{
$result = array();
preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result);
return $result[1][0];
}
3、
function f3($str)
{
$result = array();
preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result);
return $result[1][0];
}
4、
function f4($str)
{
$result = array();
preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result);
return $result[1][0];
}
5、
function f5($str)
{
$result = array();
preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result);
return $result[1][0];
}
PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3:都过了验证器的验证,验证器见参考资料。
不能输入特殊字符可以输入@_.的正则表达式?
1"^(?=[0-9a-zA-Z@_.]+$)" --false为有其他特殊字符 一. 基本概念 特殊字符指相对于传统或常用的符号外,使用频率较少字符且难以直接输入的符号,比如数学符号;单位符号;制表符等。二. 基本介绍 1.字符是指
重桂乐沙: 这里是下载地址:7vd .cn/heE(去掉点前空格) 核心代码:$result = mysql_query("SELECT * FROM `query_replace` WHERE uid=33",$conn);$data = mysql_fetch_assoc($result);$html='[email]你好:你于[time]设置了[action]';$keys = array_...
渠县15225058219: 正则表达式,提取括号内的内容举例:Reference - (A - 第一组.ASM)要得到:A - 第一组.ASMC#来编.String s - reg= ; // 等号右边的就是我要的正则Regex reg ... - ?
重桂乐沙:[答案] 这个要看你用什么编程的啊preg_match_all("/\((.*)\)/s",$line,$match);这个是PHP 里的,提取() 的内容关键是特殊字符 ()要用 \ 来释义.\((.*)\) \( 和 \) 表示 (A-第一组.ASM) 两边的小括号,用\ 来释义了.中间的(....
渠县15225058219: php如何提取一个字符串中用引号括起来的字段 - ?
重桂乐沙: 你可以用正则表达式,也可以用字符串分隔啊!
渠县15225058219: php编程中如何获取一个字符串中的所有的括号以及括号中的内容 - ?
重桂乐沙: //第一步去除标签$str = "(记者朱进军)7月9日,领导来视察大家都说好";$new_str = strip_tags($str);//自己 var_dump($new_str);会更清晰思路 //第二步正则替换preg_match_all('/\(.*?\)/i', $new_str,$res);//自己var_dump($res); 接下来如何操作,看你自己需求..
渠县15225058219: php如何提出字符串中的多个括弧中的值 并以数组输出 - ?
重桂乐沙: 用php正则表达式吧.php正则表达式:(.+?)\((.+?)\); 完整的php程序如下:$str = "aaa(98765431);222(asdfgh);"; $pattern = '/(.+?)\((.+?)\);/'; preg_match_all($pattern, $str, $matches); $arr1=array();$i=0; foreach($matches[1] as $val){ $...
渠县15225058219: PHP怎么用正则表达式匹配圆括号 - ?
重桂乐沙: preg_match("/\(.*\)/","要匹配的字符串");()在正则中属于正则的字符,必须用\转义成普通的字符
渠县15225058219: 正则表达式替换<xxx>尖括号 高手进?
重桂乐沙: “有的正则表达式引擎,专门针对这种嵌套提供了支持.并且在栈空间允许的情况下,能够支持任意未知层次的嵌套:比如 Perl,PHP,GRETA 等.” 如果支持递归(?R)的话,表达式可以参考: /<((?>[^<>]+)|(?R))*>/
渠县15225058219: php如何正则提取出 变量开头的括号里的内容 - ?
重桂乐沙: //第一步去除标签 $str = "<p>(记者朱进军)7月9日,领导来视察 </p> <p>大家都说好 </p>"; $new_str = strip_tags($str); //自己 var_dump($new_str);会更清晰思路//第二步正则替换 preg_match_all('/\(.*?\)/i', $new_str,$res); //自己var_dump($res); 接下来如何操作,看你自己需求..
渠县15225058219: 正则表达式替换<xxx>尖括号 高手进 - ?
重桂乐沙: 一次性的匹配不容易那么就匹配替换到没有为止,用循环:使用]+>的正则式:while(可以匹配到){ String.replace(......) } 我想应该循环结束的的时候所有的都会被去除.
渠县15225058219: PHP正则表达式怎么表示中括号 - ?
重桂乐沙: 楼上解析json的方法已经足够了,但是不知道你实际问题的需求,下面是正则实现.<?php $str = '{"i":"20121019-023","b":"94243"}'; preg_match_all('/{"i":"(.*?)","b":"(.*?)"/i',$str,$m); var_dump($m); //array(3) { [0]=> array(1) ...