利用正则表达式提取固定字符之间的字符串

 更新时间:2017年02月27日 14:29:43   作者:子匠_Zijor  
这篇文章主要给大家介绍了利用正则表达式提取固定字符之间的字符串,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

在JS的正则零宽断言匹配中,只支持前瞻匹配,不支持后瞻。这就尴尬了,因为在业务当中,我们大多时候是知道了要目标数据的前后缀字符串,但是并不想连同前后缀一起获取。

为了模拟后瞻,我想,要不就用笨方法,先将前后缀字符串一同提取,然后再讲前后缀字符串一同replace为空字符串。于是就有了下面这个简单的方法,但确实很实用:

示例代码如下

// 提取固定字符之间的字符串
function getInnerString(source, prefix, postfix) {
 var regexp = new RegExp(encodeReg(prefix) + '.+' + encodeReg(postfix), 'gi');
 var matches = String(source).match(regexp);
 var formatedMatches = _.map(matches, value => {
  return value
   .replace(prefix, '')
   .replace(postfix, '');
 });
 return formatedMatches;
}

//转义影响正则的字符
function encodeReg(source) {
 return String(source).replace(/([.*+?^=!:${}()|[\]/\\])/g,'\\$1');
}

使用:

var a = '让我们荡起双桨吧';
getInnerString(a, '让我们', '吧'); // ['双桨']

var b = '老总和不在办公室,有事请留言给李秘书';
getInnerString(b, '有事请留言给', ''); // ['李秘书']

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 解析正则表达式中的.*,.*?,.+?的含义

    解析正则表达式中的.*,.*?,.+?的含义

    这篇文章主要介绍了解析正则表达式中的.*,.*?,.+?的含义,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • js Abba逆向前瞻正则匹配实例

    js Abba逆向前瞻正则匹配实例

    这篇文章主要介绍了js Abba逆向前瞻正则匹配实例,主要是使用正则表达式的零宽断言进行判断,需要的朋友可以参考下
    2016-12-12
  • PHP 正则表达式 推荐

    PHP 正则表达式 推荐

    正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教
    2012-03-03
  • Notepad+正则表达式使用方法举例详解

    Notepad+正则表达式使用方法举例详解

    使用正则表达式可以很好地完成很多繁琐耗时的工作,下面这篇文章主要给大家介绍了关于Notepad+正则表达式使用方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • .NET正则基础之平衡组

    .NET正则基础之平衡组

    平衡组是微软在.NET中提出的一个概念,主要是结合几种正则语法规则,提供对配对出现的嵌套结构的匹配,.NET是目前对正则支持最完备、功能最强大的语言平台之一,而平衡组正是其强大功能的外在表现,也是比较实用的文本处理功能
    2023-05-05
  • js正则表达式之input属性($_)RegExp对象属性介绍

    js正则表达式之input属性($_)RegExp对象属性介绍

    该属性为RegExp的静态只读属性,该属性的值为与RegExp对象所描述的正则表达式进行匹配检测的字符串,该属性也可以表示成$_
    2012-10-10
  • JavaScript正则表达式校验非零的正整数实例

    JavaScript正则表达式校验非零的正整数实例

    本文分享了JavaScript正则表达式(^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$)校验非零的正整数实例代码,代码简单易懂,需要的朋友可以看下
    2016-12-12
  • 精通JS正则表达式(推荐)

    精通JS正则表达式(推荐)

    精通JS正则表达式,讲的比较详细,学习正则表达式的朋友可以参考下。
    2010-11-11
  • 正则表达式模式修正符 比如/esi

    正则表达式模式修正符 比如/esi

    下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略,其它字符会导致错误。
    2010-07-07
  • 详解Python3中的正则表达式的基本用法

    详解Python3中的正则表达式的基本用法

    本文重点给大家介绍正则表达式的相关用法,正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下
    2019-07-07

最新评论