Javascript 如何修复正则表达式以满足我的需要? 问题 给定字符串 所需输出 试过1次
设string=foobarbazblimhkhkkthfggJavascript 如何修复正则表达式以满足我的需要? 问题 给定字符串 所需输出 试过1次,javascript,regex,Javascript,Regex,设string=foobarbazblimhkhkkthfgg console.logstring.split/\.\/m您可以从以下位置获取输出: [ "foo", "(bar)", "baz", "(blim)", "(hhh", "(kkk)", "thfgg)" ] 然后,对于每个项目,虽然的计数与的计数不同,但将列表中
console.logstring.split/\.\/m您可以从以下位置获取输出:
[
"foo",
"(bar)",
"baz",
"(blim)",
"(hhh",
"(kkk)",
"thfgg)"
]
然后,对于每个项目,虽然的计数与的计数不同,但将列表中的下一个项目附加到该项目:
常量字符串=foobarbazblimhkhkkthfgg
const output=string.split/\[a-z]{0,}\/g
对于let i=0;i[
"foo",
"(bar)",
"baz",
"(blim)",
"(hhh",
"(kkk)",
"thfgg)"
]
然后,对于每个项目,虽然的计数与的计数不同,但将列表中的下一个项目附加到该项目:
常量字符串=foobarbazblimhkhkkthfgg
const output=string.split/\[a-z]{0,}\/g
对于let i=0;i} 您可以在JavaScript中使用生成器函数,因为我不是JS程序员,所以代码可能看起来有点笨拙: 函数*parsersome_字符串{ 设stack=,pars=0; 对于let i=0;i
} 这种老式的方法很管用 设string=foobarbazblimhkhkkthfgaaaa; 函数*解析输入{ 设str=; 对于 设i=0,parens=0,c=input[0],length=input.length; i<长度; c=输入[++i] { 如果c=={ 如果parens++str+= else{如果str产生str;str=;} }如果c=={ 如果parens-==1{yield str+;str=} else str+= }else str+=c } 产量str; }
console.logArray.fromparsestring传统的方法工作得相当好 设string=foobarbazblimhkhkkthfgaaaa; 函数*解析输入{ 设str=; 对于 设i=0,parens=0,c=input[0],length=input.length; i<长度; c=输入[++i] { 如果c=={ 如果parens++str+= else{如果str产生str;str=;} }如果c=={ 如果parens-==1{yield str+;str=} else str+= }else str+=c } 产量str; }
console.logArray.fromparsestringOk但。。。问题是什么?如何解决这个问题?您正在寻找JavaScript不支持的递归模式。所以你需要自己计算函数中的开始括号和结束括号。你能解释一下怎么做吗。好的,但是。。。问题是什么?如何解决这个问题?您正在寻找JavaScript不支持的递归模式。所以你需要自己计算一个函数中的开始括号和结束括号。你能解释一下怎么做吗。Yaa似乎有用,但我会等一段时间看别人的回答
一个JS程序员,但我将使用生成器函数快速创建一个解析器,并在其上使用ofoutput@JuanMendes:嗯,当然,我从其他编程语言和语法分析中了解一般概念。但是谢谢:-是啊,它工作得很好,我花了一些时间来学习函数的逻辑,而不是你的ans。你介意把这个问题投赞成票吗!!哇,我不是一个JS程序员,但我将使用生成器函数快速创建一个解析器,并在其上使用ofoutput@JuanMendes:嗯,当然,我从其他编程语言和语法分析中了解一般概念。但是谢谢:-是啊,它工作得很好,我花了一些时间来学习函数的逻辑,而不是你的ans。你介意把这个问题投赞成票吗!!
[
"foo",
"(bar)",
"baz",
"(blim)",
"(hhh",
"(kkk)",
"thfgg)"
]