通过javascript中记住的正则表达式拆分字符串

通过javascript中记住的正则表达式拆分字符串,javascript,regex,Javascript,Regex,我有一根绳子 var str="java+script+regex"; 现在,我只想在+位于单词java之后时,将正则表达式拆分为+符号 所以当我尝试 str.split(/java(\+)/) 然后,它使用java++拆分字符串。那么,如何使用word java之后的++拆分字符串呢?获取结果[“java”,“script+regex”]您可以使用拆分捕获: "java+script+regex".split(/(java)\+/) 这给了你 ["", "java", "script+

我有一根绳子

var str="java+script+regex";
现在,我只想在
+
位于单词java之后时,将正则表达式拆分为
+
符号

所以当我尝试

str.split(/java(\+)/)

然后,它使用java++拆分字符串。那么,如何使用word java之后的
++
拆分字符串呢?获取结果
[“java”,“script+regex”]

您可以使用拆分捕获:

 "java+script+regex".split(/(java)\+/)
这给了你

["", "java", "script+regex"]
匹配

"java+script+regex".match(/(java)(?:\+)(.+)/).slice(1)
["java", "script+regex"]
更换

"java+script+regex+java+chrome".replace(/(java)\+/g, "$1@").split("@")
["java", "script+regex+java", "chrome"]

显示了在javascript中模拟lookbehinds的不同方法。

您可以使用拆分捕获:

 "java+script+regex".split(/(java)\+/)
这给了你

["", "java", "script+regex"]
匹配

"java+script+regex".match(/(java)(?:\+)(.+)/).slice(1)
["java", "script+regex"]
更换

"java+script+regex+java+chrome".replace(/(java)\+/g, "$1@").split("@")
["java", "script+regex+java", "chrome"]
显示在javascript中模拟lookbehinds的不同方法。

只需执行此操作即可

var n=(" "+str).split(/(?=java[+])/)
               .join("java")
               .split(/java[+]/);     
就这么做吧

var n=(" "+str).split(/(?=java[+])/)
               .join("java")
               .split(/java[+]/);     


因为javascript不支持look-behind,所以我认为它不支持possible@ArunPJohny:可能,但痛苦的是:相反,使用前瞻性拆分
/\+(?=avaj)/
,反转结果数组和每个成员字符串:javascript不支持psince look behind,我认为不支持possible@ArunPJohny:可能,但痛苦的是:相反,使用前瞻性拆分
/\+(?=avaj)/
,反转结果数组和每个成员字符串:p您应该在最后添加另一个
。反转
。即使在组中也不行?你得到的是
[“regex+script”,“java”]
当你直观地得到
[“java”,“script+regex”]
的时候,你应该再加一个
。最后倒转
。甚至不分组?你得到的是
[“regex+script”,“java”]
,而得到
[“java”,“script+regex”]
是很直观的。不幸的是,你的第一种方法也是用+拆分数组,它前面是java,而你的第二种方法是只使用java@Ankit的第一个匹配项进行拆分,然后使用
str.split(/\+?(java)\+/)
@VisioN与这个答案的第一个方法有相同的问题@Ankit那么你期望得到什么结果?@VisioN in fiddle
[java,script+regex+java,chrome]
但是我得到了
[java,script+regex,java,chrome]
不幸的是,您的第一种方法也是用+拆分数组,前面是java,而您的第二种方法只是用java@Ankit的第一次出现来拆分数组,然后使用
str.split(/\+?(java)\+/)
@VisioN与此答案的第一种方法@Ankit有相同的问题,那么您期望得到什么结果?@VisioN in fiddle
[java,script+regex+java,chrome]
但是我得到了
[java,script+regex,java,chrome]