javascript - 字符串解析器
问题描述
假设我有一个字符串,
str = "Date()+Abs(9)Day()+45"
我想要一个包含以下内容的数组:
arr[0]=Date()
arr[1]=Abs(9)
arr[2]=Day()
我当前的解析器:
var temp = str.match(/\w+(\w+)/)
请帮忙
解决方案
这是一个很简单的表达方式。
/ -- START expression
\w+ -- One or more alpha-numeric (plus '_')
\( -- Literal opening parenthesis
[\w/-]* -- Zero or more alpha-numeric (plus '_', '/', and '-')
\) -- Literal closing parenthesis
/g -- END expression; Global match
var str = "Date(20/04/98)+Abs(-9)Day(20/04/98)+45"
var arr = str.match(/\w+\([\w/-]*\)/g);
console.log(JSON.stringify(arr, null, 2));
// arr[0] = Date(20/04/98)
// arr[1] = Abs(-9)
// arr[2] = Day(20/04/98)
学到更多
- 信息
- 工具
推荐阅读
- postgresql - 带有年份和周数的 Postgresql 日期范围查询
- vue.js - 我无法使用 MomentJs 和 Vue 比较我的日期
- python - 扫描 S3 存储桶,仅将 zip 文件上传到 S3 存储桶
- sql - 计算包含 (SQL) 中给出的字母的记录
- mysql - 选择计数行,其中 DATETIME = DATE
- python - 如何编写可以在任何 Red Hat 机器上运行的 python 脚本?
- java - 单击标签并仅查看具有相同标签的图片
- c++ - 覆盖函数的问题
- c# - Swagger 未检测到功能文件夹内的控制器
- python - Bokeh/Python:如何在 CustomJS 回调中更改数据列