javascript - 如何将其拆分为 token ?

标签 javascript arrays regex

我有这个数据:

/some test/ -> next data
prev<-/now/->/how about this/ 
asd<-/rege\/x/
/\/\//
/\\/
/^\d+$/ <- /\./
/\./ -> /\d/

我想将其拆分为信息 token \w+|/.*?/ , <- , ->但是-><-无法出现在里面/here/
我试过this ,但在这种情况下失败 /\/\// .

const data = `/some test/ -> next data
prev<-/now/->/how about this/ 
asd<-/rege\/x/
/\/\//
/\\/
/^\d+$/ <- /\./
/\./ -> /\d/`

console.log(data.split(/\s*(\w+|\/.*?\/\B)\s*/).filter(x => x != ""))

我应该在正则表达式中做什么来覆盖这部分?

最佳答案

假设在启动 /.../ 的未转义 / 之前不能有转义的 / 字符> 子字符串,您可以使用

/\s*(\w+|\/[^\/\\]*(?:\\.[^\/\\]*)*\/)\s*/g

请参阅regex demo

如果可以转义换行符(如 CR 或 LF),则需要将 . 替换为 [\s\S]/[ ^] 匹配任何字符。

注意:\/[^\/\\]*(?:\\.[^\/\\]*)*\/ 匹配...

  • \/ - 一个 /
  • [^\/\\]* - 除 /\
  • 之外的 0+ 个字符
  • (?:\\.[^\/\\]*)* - 零个或多个序列
    • \\. - 转义字符
    • [^\/\\]* - 除 /\
    • 之外的 0+ 个字符
  • \/ - 一个 / 字符

关于javascript - 如何将其拆分为 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497301/

相关文章:

javascript - 将图像/视频从 html 获取到 java servlet 作为 new File()

javascript - 如何使用 $localstorage 在 Angularjs 中添加投票系统

javascript - Ajax数组只返回1个值?

c# - 搜索以 c# regex 开头和结尾的所有字符串

javascript - 在单个单词中匹配大写、帕斯卡命名法和驼峰命名法

php - 被重定向到错误的地方 - 有时

Java数组变量显示为空?

php - 将多维 PHP 数组中父节点的值串在一起

java - 当输入中存在不同形式的参数时分割字符串

javascript - 定时 promise 解决在之前用时间解决一次后立即返回