美文网首页
正则表达式

正则表达式

作者: Iam品种 | 来源:发表于2022-04-21 11:02 被阅读0次

待匹配字符串:

[房产.建筑面积]+([订单.订单条目数]+[订单.订单总金额])+(([订单.订单条目数]-[订单.订单总金额])/([订单.订单条目数]/[订单.订单总金额]))

一、指定符号包裹的正则表达式

以小括号包裹为例:

1、匹配结果包含小括号,不支持嵌套:
/\((.+?)\)/g
匹配结果:

([订单.订单条目数]+[订单.订单总金额])
(([订单.订单条目数]-[订单.订单总金额])
([订单.订单条目数]/[订单.订单总金额])

2、匹配结果包含小括号,嵌套时只匹配最内层的小括号:
/\(([^\(]+?)\)/g
匹配结果:

([订单.订单条目数]+[订单.订单总金额])
([订单.订单条目数]-[订单.订单总金额])
([订单.订单条目数]/[订单.订单总金额])

3、匹配结果不包含小括号:
/(?<=\()([^\(]+?)(?=\))/g
匹配结果:

[订单.订单条目数]+[订单.订单总金额]
[订单.订单条目数]-[订单.订单总金额]
[订单.订单条目数]/[订单.订单总金额]

4、通用正则表达式:
// 匹配结果包含小括号,不支持嵌套
new RegExp(beginStr +'(.+?)'+endStr, gim);
// 匹配结果包含小括号,嵌套时只匹配最内层的小括号
new RegExp(beginStr +'([^'+beginStr+']+?)'+endStr, gim);
// 匹配结果不包含小括号
new RegExp('(?<='+beginStr+')([^'+beginStr+']+?)(?='+endStr+')', gim);
注:使用时,beginStr和endStr请自行转义,转义时需用'\\'(双斜杠)
function a(beginStr, endStr, gim) {
    console.log(beginStr +'(.+?)'+endStr);
    return new RegExp(beginStr +'(.+?)'+endStr, gim||'');
}
function b(beginStr, endStr, gim) {
    console.log(beginStr +'([^'+beginStr+']+?)'+endStr);
    return new RegExp(beginStr +'([^'+beginStr+']+?)'+endStr, gim||'');
}
function c(beginStr, endStr, gim) {
    console.log('(?<='+beginStr+')([^'+beginStr+']+?)(?='+endStr+')');
    return new RegExp('(?<='+beginStr+')([^'+beginStr+']+?)(?='+endStr+')', gim||'');
}
let text = '[房产.建筑面积]+([订单.订单条目数]+[订单.订单总金额])+(([订单.订单条目数]-[订单.订单总金额])/([订单.订单条目数]/[订单.订单总金额]))';

text.match(a('\(', '\)', 'g'));
 // => ((.+?))
// => ['[', '房', '产', '.', '建', '筑', '面', '积', ']', '+', '(', '[', '订', '单', '.', '订', '单', '条', '目', '数', ']', '+', '[', '订', '单', '.', '订', '单', '总', '金', '额', ']', ')', '+', '(', '(', '[', '订', '单', '.', '订', '单', '条', '目', '数', ']', '-', '[', '订', '单', '.', '订', '单', '总', '金', '额', ']', ')', '/', '(', '[', '订', '单', '.', '订', '单', '条', '目', '数', ']', '/', '[', '订', '单', '.', '订', '单', '总', '金', '额', ']', ')', ')']

text.match(a('\\(', '\\)', 'g'));
// => \((.+?)\)
// => ['([订单.订单条目数]+[订单.订单总金额])', '(([订单.订单条目数]-[订单.订单总金额])', '([订单.订单条目数]/[订单.订单总金额])']

text.match(b('\\(', '\\)', 'g'));
// => \(([^\(]+?)\)
// => ['([订单.订单条目数]+[订单.订单总金额])', '([订单.订单条目数]-[订单.订单总金额])', '([订单.订单条目数]/[订单.订单总金额])']

text.match(c('\\(', '\\)', 'g'));
// => (?<=\()([^\(]+?)(?=\))
// => ['[订单.订单条目数]+[订单.订单总金额]', '[订单.订单条目数]-[订单.订单总金额]', '[订单.订单条目数]/[订单.订单总金额]']

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/uqriertx.html