php - 如何获取字符串中的内容?
ringa_lee
ringa_lee 2017-04-10 15:35:36
[PHP讨论组]

$str = "你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]";

如何获取[args1]和[args2];是不是一般都的正则进行匹配?

正则水平有点烂,/^(\[)*(\])$/ 匹配有问题呢?
请指教!

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
阿神

JavaScript版

用match

var str = '你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]';
var re = /\[\w+\]/g;
var matches = str.match(re);
console.log(matches[0],matches[1]);

用exec

var str = '你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]';
var re = /\[\w+\]/g;
while((matches =re.exec(str)) != null){
    console.log(matches[0]);
}

有点复杂

var str = '你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]';
var re = /[\u4e00-\u9fa5]/;
console.log(str.split(re).filter(function(value){return /\[\w+\]/.test(value)}))

还需要对返回的数组做一下简单就行。

文章:JavaScript正则表达式
正则表达式笔记

PHP版

preg_match

<?php
header("content-type:text/html;charset=utf8");
$str = '你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]';
$re = '/.+(\[\w+\]).+(\[\w+\])/';
if(preg_match($re,$str,$matches)){
     echo $matches[1]."<br />";
     echo $matches[2]."<br />";
}
?>

preg_match_all

<?php
header("content-type:text/html;charset=utf8");
$str = '你好,欢迎使用[args1].我们会马上给你发货,地址:[args2]';
$re = '/\[\w+\]/';
if(preg_match_all($re, $str, $matches)){
     echo $matches[0][0]."<br />";
     echo $matches[0][1]."<br />";
}
?>

相关文章:php中的字符串和正则表达式

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号