javascript - 用于将 <=last date+30d 拆分为 5 个数组的正则表达式

标签 javascript regex regex-group

我正在尝试使用正则表达式匹配函数将以下字符串拆分为子字符串。但它并没有分割最后一个元素。谁能指出我犯的错误吗?

"<=lastdate+30d".match(/(>=|<=|==|<|>|\!=)|\w+|[-+]|\d|[dhms]/g)

result is ["<=", "lastdate", "+", "30d"]

expected result is ["<=", "lastdate", "+", "30", "d"]

最佳答案

您的正则表达式的问题是 \w[a-zA-Z0-9_] 匹配。因此,最后一个 30d\w+ 匹配。

使用下面的正则表达式:

/(>=|<=|==|<|>|\!=)|[a-z]+|[-+]|\d+|[dhms]/

console.log("<=lastdate+30d".match(/(>=|<=|==|<|>|\!=)|[a-z]+|[-+]|\d+|[dhms]/gi));

关于javascript - 用于将 <=last date+30d 拆分为 5 个数组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50712487/

相关文章:

javascript - 如何使用 Google Places 获取一组地名?

php - 需要从基于子域的 Mysql 数据库中提取图像 url 列表,并将它们存储为列表

JavaScript 和正则表达式 : undefined and ""

javascript - 如何传递用户输入的简单计算器

javascript - 防止视频加载时重置 currentTime?

javascript - Firebase - JS 查询 - 获取一个节点,其中子值具有值为 xxx 的子节点

Python - Pandas - 仅删除只有数字的拆分,但如果有字母则保留

python - 匹配python正则表达式中的括号

javascript - 如何将字符串化的正则表达式文字转换回正则表达式?

java - 使用正则表达式 (Java) 将字符串拆分为 key=value 组