如何用php正则表达式取出“字符”间的字符

 我来答
龙氏风采
推荐于2018-03-13 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12816
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
  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:都过了验证器的验证,验证器见参考资料。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式