Javascript 如何将其拆分为令牌?

Javascript 如何将其拆分为令牌?,javascript,arrays,regex,Javascript,Arrays,Regex,我有以下数据: /some test/ -> next data prev<-/now/->/how about this/ asd<-/rege\/x/ /\/\// /\\/ /^\d+$/ <- /\./ /\./ -> /\d/ 假设在启动/…/子字符串的未转义/之前不能有转义的/字符,则可以使用 /\s*(\w+|\/[^\/\\]*(?:\\.[^\/\\]*)*\/)\s*/g 见 如果可以转义换行字符(如CR或LF),则需要将替换为[\s

我有以下数据:

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

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

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

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

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

  • \/
    -a
    /
  • [^\/\\]*
    -0+字符,而不是
    /
    \
  • (?:\.-.^\/\]*)*
    -零个或多个
    • \\.
      -转义字符
    • [^\/\\]*
      -0+字符,而不是
      /
      \
  • \/
    -a
    /
    字符

类似于?@WiktorStribiżew这正是我想要的,非常感谢:)我想你可以用逃避任何东西的方法,但是你看不到分隔符从哪里开始。如果没有这些,你的代币就会移动。而整个解析是没有意义的。。。解析Perl
$v=~\//x/是一个错误。实际上
$v=~\//x\/
应该抛出,因为这里没有有效的令牌,只允许
/^\w+$/
'
/^\/.\/$/