首页 > 如何获取字符串中的内容?

如何获取字符串中的内容?

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

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

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


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中的字符串和正则表达式

【热门文章】
【热门文章】