regexpp

ECMAScript 的正则表达式解析器
授权协议 MIT
开发语言 TypeScript
所属分类 程序开发、 正则表达式工具
软件类型 开源软件
地区 不详
投 递 者 聂宜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

regexpp 是一个适用于 ECMAScript 的正则表达式解析器。

安装

$ npm install regexpp
  • 需要 Node.js 8 或更新版本。

用法

import {
    AST,
    RegExpParser,
    RegExpValidator,
    RegExpVisitor,
    parseRegExpLiteral,
    validateRegExpLiteral,
    visitRegExpAST
} from "regexpp"

parseRegExpLiteral

解析给定的正则表达式文字,然后生成 AST 对象。

这相当于new RegExpParser(options).parseLiteral(source).

  • 参数:
    • sourcestring | RegExp) 要解析的源代码。
    • options?RegExpParser.Options) 要解析的选项。
  • 返回:
    • 正则表达式的 AST。

validateRegExpLiteral

验证给定的正则表达式。

这相当于new RegExpValidator(options).validateLiteral(source).

访问 RegExpAST

访问给定 AST 的每个节点。

这相当于new RegExpVisitor(handlers).visit(ast).

正则解析器

新的 RegExpParser

parser.parseLiteral

解析正则表达式文字。

  • 参数:
    • sourcestring) 要解析的源代码。例如"/abc/g"
    • start?number) 源代码中的起始索引。默认为0
    • end?number) 源代码中的结束索引。默认为source.length
  • 返回:
    • 正则表达式的 AST。

parser.parsePattern

解析正则表达式模式。

  • 参数:
    • sourcestring) 要解析的源代码。例如"abc"
    • start?number) 源代码中的起始索引。默认为0
    • end?number) 源代码中的结束索引。默认为source.length
    • uFlag?boolean) 启用 Unicode 模式的标志。
  • 返回:
    • 正则表达式模式的 AST。

parser.parseFlags

解析正则表达式标志。

  • 参数:
    • sourcestring) 要解析的源代码。例如"gim"
    • start?number) 源代码中的起始索引。默认为0
    • end?number) 源代码中的结束索引。默认为source.length
  • 返回:
    • 正则表达式标志的 AST。
  • 介绍一下主要的功能函数. 参考:https://www.jianshu.com/p/3bcc06b1294b regexp_extract 相当于python当中的re.search: 遍历匹配,仅可以获取到字符串当中第一个满足匹配条件的字符串然后返回,如果没有匹配到字符串,则返回空串(re是None). group() :不管有没有分组将匹配到的结果全部拿出来,等价于group(0),返回类型为

  • 简介 正则表达式是我们做数据匹配的时候常用的一种工具,虽然正则表达式的语法并不复杂,但是如果多种语法组合起来会给人一种无从下手的感觉。 于是正则表达式成了程序员的噩梦。今天我们来看一下如何在ES9中玩转正则表达式。 Numbered capture groups 我们知道正则表达式可以分组,分组是用括号来表示的,如果想要获取到分组的值,那么就叫做capture groups。 通常来说,我们是通过

  • golang Regexp主要提供如下正则所表示的16个方法: Find(All)?(String)?(Submatch)?(Index)? 若带All,该方法返回一个所有递进匹配结果的slice;该方法需要额外传一个整数n,若n>=0,至多返回n个匹配或子匹配,若x<0,返回全部。 若带String,该方法传入的参数需是string,否则为字节slice,返回结果也为对应的string。 若带

  • https://segmentfault.com/a/1190000007422601 转载于:https://www.cnblogs.com/geekjsp/p/6916148.html

  • 转载自https://www.cnblogs.com/golove/p/3270918.html,仅用做学习记录 // 判断在 b(s、r)中能否找到 pattern 所匹配的字符串 func Match(pattern string, b []byte) (matched bool, err error) func MatchString(pattern string, s string) (

  • ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同。 格式:

  • 这个表达式包含五个子表达式,顺序如下:“abcdefghi”,“abcdef”,“abc”,“de”和“678”。如果subexpr为零,那么返回匹配pattern中整个字符串的子字符串位置。如果的subexpr大于零,则返回匹配对应于子表达式编号的subexpr的子字符串位置。如果pattern不包含subexpr子表达式,函数返回0。一个空的subexpr值返回NULL。Subexpr默认值是

  • -- mysql 正则表达式 RegExp -- 操作符 -- ^      匹配输入字符串的开始位置。 -- $      匹配输入字符串的结束位置。 -- .      匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。 -- [...]    字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的

  • ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同 --  正

  • regexp   rlike    not rlike 今天在上班的时候突然遇到了一个问题,C+组的同事要删除mysql里面的一些特殊数据,想要正则进行匹配。于是问我,没想到还真的把我难住了,问题如下: CDN项目中有关域名数据有如下情况: +------------+ | id | +------------+ | 1a.wangwei | | 2a.wangwei | | 3a.wangwei

  • 场景:mysql未设置大小写区分的设置 表里有脏数据,表中某字段只能是大写,现在有部分数据包含小写的字符,现在要过滤出这些数据做清洗   sql: SELECT *  from vehicle  WHERE  `enable` =1 and  vin  regexp BINARY   '[[:lower:]]'   说明:  regexp  正则匹配  更多匹配,请参考:https://www.j

  • regexp regexp ?switches? exp str ?matchVar? ?subMatchVar subMatchVar ...? 判断正则表达式exp是否匹配部分或全部字符串str,如果匹配返回1,否则返回0。如果在str后面指定了其他参数,则视为变量的名称,其中保存的是str中匹配exp的部分。matchVar保存的是所有匹配exp的字符串。 switches为开关,是以“-”

  •       JavaScript RegExp 对象 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。 直接量语法 /pattern/attributes 创建 RegExp 对象的语法: new RegExp(pattern, attributes); 参数 参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。 参数 attrib

  • Mysql中Regexp常见用法 模糊匹配,包含特定字符串 查找content字段中包含“车友俱乐部”的记录 select * from club_content where content regexp ‘车友俱乐部’ 此时的regexp与like的以下用法是等同的 select * from club_content where content like ‘%车友俱乐部%’ 模糊匹配,以特定字

  • * from tt_ticket where 1=1 and (nvl( (select m.mapper_city from tt_ticket_city_mapper m where m.city = trim((select REGEXP_SUBSTR(t.schedule,‘[^/]+‘,1,1) from dual))) , trim((select REGEXP_SUBSTR(t.sc

  • REGEXP正则的意思,在SQL里用上正则,极大的方便 不信请看 select clas.id,clas.parent_id,clas.path,p.id,p.parent_id,p.path from clas left join clas p on clas.id=p.parent_id where !(p.path REGEXP clas.path)

  • regexp在hive和mysql中都可以使用,匹配商品名称中包含伊利的数据 goods_name regexp '伊利' 等价于 goods_name like '%伊利%' 看起来也没啥,但是当后面的关键字是变量时,优势就很明显了。比如在BI系统中,使用 g o o d s n a m e goods_name goodsn​ame,可以接收用户输入的关键字进行模糊查询。正表达式的写

 相关资料
  • Java中的正则表达式问题。我正在从元素href属性中提取Id号。我在一个字符串中有一堆这样的链接:

  • 问题内容: 有什么方法可以在python中的流上使用正则表达式匹配吗?喜欢 而且我不想通过获取整个字符串的值来做到这一点。我想知道是否有任何方法可以在srtream上匹配正则表达式(即时)。 问题答案: 我有同样的问题。首先想到的是实现一个类,该类的作用类似于字符串,但仅从流中读取当前所需的数据(我通过重新实现并提取和缓冲字符直到访问的最高位置来完成此操作……)。 这没有解决(我从中得到了“ Ty

  • 问题内容: 我正在创建一个CSS编辑器,并试图创建一个可以从CSS文档获取数据的正则表达式。如果我拥有一个属性,则此正则表达式有效,但我无法使其对所有属性都有效。我在PHP中使用preg / perl语法。 正则表达式 测试用例 预期结果 实际结果 在此先感谢您的帮助-整个下午使我感到困惑! 问题答案: 对于单个正则表达式来说,这似乎太令人费解了。好吧,我敢肯定,通过正确的扩展,高级用户可以创建正

  • 我试图在正则表达式中组合if-else,基本上,如果字符串中存在一些模式,则捕获一个模式,如果不存在,则捕获另一个模式。 字符串是:'https://www.searchpage.com/searchcompany.aspx?companyId=41490234 因此,如果在字符串中检测到“?”,则正则表达式应捕获“?”标记之后的所有内容;如果没有,那就从头抓起。 我使用了:

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 本文向大家介绍JavaScript正则表达式解析URL的技巧,包括了JavaScript正则表达式解析URL的技巧的使用技巧和注意事项,需要的朋友参考一下 正则表达式是一个描述字符模式的对象。 首先,此片文章并不是直接告诉你,url的正则表达式是什么,以及怎么使用这个正则表达式去解析一个URL地址,相信这种问题在网络上已经能找到很多。本文的宗旨在于教你如何理解URL的正则表达式,以达到理解正则表达

  • 我的正则律很糟糕。我想建立一个智能搜索,在那里我可以给搜索引擎提示在哪个属性上搜索什么。 类似这样: 搜索输入:位置:伦敦 - 搜索输入:位置:纽约伦敦 - 搜索输入:位置:伦敦标签:栏 - - 搜索输入:地点:伦敦,纽约标签:酒吧,俱乐部 - - 我想知道正则表达式应该如何解析这样的用户输入?

  • 问题内容: 我正在寻找一种解析日志文件的解决方案。看起来像: 可以区分以下元素: 但我仍然不知道该怎么做。简单行不通。 我知道正则表达式具有一般规则,但最合适的是Java。 谢谢 问题答案: 我想出了一种根据可能的/期望的值从与各个字段匹配的块中构建正则表达式的方法。 当然,可以用rex代替rexa或rexi。