Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在(不是值)后加(值)拆分?_Javascript_Regex - Fatal编程技术网

Javascript 如何在(不是值)后加(值)拆分?

Javascript 如何在(不是值)后加(值)拆分?,javascript,regex,Javascript,Regex,我这里有这个代码: var fields = row.split(/regex goes here/); 我想在每个事件上拆分行 | 但不是 *| 如何编写这个简单的正则表达式。我以为这里面没有什么人物,但我现在似乎找不到一个好的推荐人 我知道我需要像这样转义特殊字符\\\\\\。但是如何添加not部分 很可能我会将标记切换到 |* 而不是 *| 然后,我可以在MDN上找到这个表单-匹配x,如果后面不跟y x(?!y) 我在这里测试: 在这里找到了一个很好的参考 您需要的是Jav

我这里有这个代码:

var fields = row.split(/regex goes here/);
我想在每个事件上拆分行

|
但不是

*|
如何编写这个简单的正则表达式。我以为这里面没有什么人物,但我现在似乎找不到一个好的推荐人

我知道我需要像这样转义特殊字符
\\\\\\
。但是如何添加not部分

很可能我会将标记切换到

|*
而不是

*|
然后,我可以在MDN上找到这个表单-匹配x,如果后面不跟y

x(?!y)
我在这里测试:

在这里找到了一个很好的参考


您需要的是JavaScript不支持的lookbehind

最后,JavaScript、Ruby和Tcl等风格不支持 尽管它们确实支持“向前看”,但仍然支持“向后看”。 -

你需要做一些黑客。用某种独特的字符序列替换所有的
*|
。然后在
|
上拆分,最后将这些特殊字符序列替换回
*|


作为旁注。如果您正在创建某种wiki引擎,您可能会尝试找到现成的引擎。

您需要的是JavaScript不支持的查找

最后,JavaScript、Ruby和Tcl等风格不支持 尽管它们确实支持“向前看”,但仍然支持“向后看”。 -

你需要做一些黑客。用某种独特的字符序列替换所有的
*|
。然后在
|
上拆分,最后将这些特殊字符序列替换回
*|

作为旁注。如果您正在创建某种wiki引擎,您可以尝试查找已准备就绪的引擎。

不要在分隔符上使用
split()
。只需
.match()
分隔符之间的所有内容:

var fields = row.match(/(?:\*\||[^|])*/g);
说明:

(?:    # Match either
 \*\|  # *|
|      # or
 [^|]  # any character except |
)*     # Repeat as needed
不要在分隔符上使用
split()
。只需
.match()
分隔符之间的所有内容:

var fields = row.match(/(?:\*\||[^|])*/g);
说明:

(?:    # Match either
 \*\|  # *|
|      # or
 [^|]  # any character except |
)*     # Repeat as needed

我删除我的帖子是因为它不正确。到目前为止,我还没有找到一个解决方案,它不截断没有*听说过rubular.com的项目的最后一个字符。它是特定于ruby的,但我使用它作为基础,为解决方案找到最好的基本正则表达式。如果涉及太多,你就做得太多。我删除我的帖子是因为它不正确。到目前为止,我还没有找到一个解决方案,它不截断没有*听说过rubular.com的项目的最后一个字符。它是特定于ruby的,但我使用它作为基础,为解决方案找到最好的基本正则表达式。如果涉及太多,你就做得太多了。不向后看;使用哨兵。@GuyMontag临时替换的字符序列将被称为哨兵(或哨兵)。@GGG:如果不必使用
.split()
,则无需使用哨兵。看看我的解决方案。@TimPietzcker很好的方法,完全不需要
拆分
。@Tim…到目前为止,我找不到一种方法让所有的案例都有效…哨兵可能是我最好的选择…这是失败的案例…答对了。不向后看;使用哨兵。@GuyMontag临时替换的字符序列将被称为哨兵(或哨兵)。@GGG:如果不必使用
.split()
,则无需使用哨兵。看看我的解决方案。@TimPietzcker的好方法,完全消除了
split
的需要。@Tim…到目前为止,我找不到一种方法让所有案例都能正常工作…哨兵可能是我最好的选择…这是失败的案例…最终案例破裂…我找不到使用split()或match()的方法所以,当结束案例中断时……到目前为止,我找不到使用split()或match()实现此目的的方法