假设我们有一个名为str的字符串,它定义为:
const str = `
( Find this & ( this ) )
`
您可能不清楚,所以让我清除一下。我们的目标是找到(和)之间的数据并发出警报(我个人喜欢使用replace(),因为我对match() 或matchAll()。因此,请原谅。)。所以,这是我的正则表达式解决方案:
const find = (str) => {
str.replace(/\(([\S\s]*?)\)/gm, (_, a) => {
alert(a)
}
}
所以,现在我去做:
find(str)
// => Find this & ( this
/* Expected Result */
// 1) => this
// 2) => Find this & ( this )
所以,您可能已经理解我经常重复使用不连续的字符时遇到问题。我的正则表达式会捕获第一个(以及第一个),并提醒它们之间的内容。但是我想要的东西定义如下:
在第一个(
之间保持(以及)的递归之间找到它,后者位于最后一个)之间]与在[[(
和)之间有多少(无关紧要,它应该保持流向直到最后一个)。就像是成对维护。例如,更详细
const str = `
Find (
I feel (
lucky ( enough )
)
)
`
find(str)
// 1) => I feel ( lucky ( enough ) )
// 2) => lucky ( enough )
// 3) => enough
但是实际上我需要的是相反的顺序,即输出将是:
// 1) => enough
// 2) => lucky ( enough )
// 3) => I feel ( lucky ( enough ) )
所以,您能帮我解决这个问题吗?能做到吗?如果可以,您可以向我解释一下吗?
假设我们有一个名为str的字符串,它的定义为:const str =`(找到this&(this))`可能您不清楚,所以让我清除它。我们的目的是在(&...