正则提取字段

如下文案,如何提取中间的文案呢

eq:
我们的%%aaa%%不一致,哈哈哈

提取后是aaa

阅读 14k
3 个回答

如果只有一个需要匹配的话
那么(/%%([\s\S]+)%%/g).exec("我们的%%aa你好a%%不一致,哈哈哈")就够了。

如果有多次需要匹配

var x = "我们的%%aa你好a%%不一%%致%%,哈哈哈";
var re = /%%([\s\S]+?)%%/g;
while( tempR = re.exec(x))
{
  console.log(tempR[1]);
}

使用增则的捕获组即可,说白了就是小括号

/%%([^%]+)%%/

var t=/%%([^%]+)%%/;
t.exec("我们的%%a  aa%%不一致,   哈哈%%fsafsdf%%哈");

返回如下数据结构

{
  0: "%%a  aa%%",
  1: "a  aa",
  index: 3,
  input: "我们的%%a  aa%%不一致,   哈哈%%fsafsdf%%哈",
  length: 2
}

第一个是匹配项,第二个就是你要的捕获项。

var str = '我们的%%aaa%%不一致,哈哈哈';
var arr = str.match(/%%(.*)%%/);
console.log(arr[1]); // 'aaa'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题