Javascript 在括号中匹配所有内容
我需要在两个括号之间匹配文本。很多帖子都是关于它的,但非JavaScript支持,因为它们都使用lookback。 全文如下 “{Code}-{Description}” 我需要代码和描述与括号外的匹配 我得到的最接近的是这个Javascript 在括号中匹配所有内容,javascript,regex,Javascript,Regex,我需要在两个括号之间匹配文本。很多帖子都是关于它的,但非JavaScript支持,因为它们都使用lookback。 全文如下 “{Code}-{Description}” 我需要代码和描述与括号外的匹配 我得到的最接近的是这个 /{([\s\S]*?)(?=})/g 给我留下“{Code”和“{Description”,然后我用 正在执行子字符串 那么…有没有一种方法可以在Javascript中实现lookback类型的功能?将其用作: input = '{Code} - {Descript
/{([\s\S]*?)(?=})/g
给我留下“{Code”和“{Description”,然后我用
正在执行子字符串
那么…有没有一种方法可以在Javascript中实现lookback类型的功能?将其用作:
input = '{Code} - {Description}';
matches = [], re = /{([\s\S]*?)(?=})/g;
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["Code", "Description"]
将其用作:
input = '{Code} - {Description}';
matches = [], re = /{([\s\S]*?)(?=})/g;
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["Code", "Description"]
将其用作:
input = '{Code} - {Description}';
matches = [], re = /{([\s\S]*?)(?=})/g;
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["Code", "Description"]
将其用作:
input = '{Code} - {Description}';
matches = [], re = /{([\s\S]*?)(?=})/g;
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["Code", "Description"]
您是否尝试过这样的东西,它不需要向前看或向后看:
{([^}]*)}
您可能需要添加全局标志,但它似乎有效
真正的问题是,您需要指定要捕获的内容,这是使用正则表达式中的捕获组执行的。括号内匹配正则表达式的部分将是该捕获组返回的值。因此,为了省略{
和}
从结果来看,您只是没有将它们包含在括号内。但是,仍然需要在正则表达式中匹配它们
您可以看到如何在JavaScript中获取捕获组的值。您是否尝试过这样的方法,它不需要向前看或向后看:
{([^}]*)}
您可能需要添加全局标志,但它似乎有效
真正的问题是,您需要指定要捕获的内容,这是使用正则表达式中的捕获组执行的。括号内匹配正则表达式的部分将是该捕获组返回的值。因此,为了省略{
和}
从结果来看,您只是没有将它们包含在括号内。但是,仍然需要在正则表达式中匹配它们
您可以看到如何在JavaScript中获取捕获组的值。您是否尝试过这样的方法,它不需要向前看或向后看:
{([^}]*)}
您可能需要添加全局标志,但它似乎有效
真正的问题是,您需要指定要捕获的内容,这是使用正则表达式中的捕获组执行的。括号内匹配正则表达式的部分将是该捕获组返回的值。因此,为了省略{
和}
从结果来看,您只是没有将它们包含在括号内。但是,仍然需要在正则表达式中匹配它们
您可以看到如何在JavaScript中获取捕获组的值。您是否尝试过这样的方法,它不需要向前看或向后看:
{([^}]*)}
您可能需要添加全局标志,但它似乎有效
真正的问题是,您需要指定要捕获的内容,这是使用正则表达式中的捕获组执行的。括号内匹配正则表达式的部分将是该捕获组返回的值。因此,为了省略{
和}
从结果来看,您只是没有将它们包含在括号内。但是,仍然需要在正则表达式中匹配它们
您可以看到如何在JavaScript中获取捕获组的值。您只需尝试下面的正则表达式
[^}{]+(?=})
代码:
你可以试试下面的正则表达式
[^}{]+(?=})
代码:
你可以试试下面的正则表达式
[^}{]+(?=})
代码:
你可以试试下面的正则表达式
[^}{]+(?=})
代码:
实际上,在这种特殊情况下,解决方案非常简单:
s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]
实际上,在这种特殊情况下,解决方案非常简单:
s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]
实际上,在这种特殊情况下,解决方案非常简单:
s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]
实际上,在这种特殊情况下,解决方案非常简单:
s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]
这不是重复的-OP知道如何提取内容,他们的问题是如何在不匹配分隔符的情况下提取内容。您的问题有点不清楚:代码和描述是否可以包含换行符或其他内容?对于您的示例,这应该足够
/{(.*)}了/g
并解析匹配项以获取捕获组而不是整个匹配项请参见。@georg这是一种重复。他似乎不知道如何获取捕获组而不是整个匹配项。这不是重复项-OP知道如何提取内容,他们的问题是如何在没有匹配分隔符的情况下提取。有些不清楚您的问题是:代码和描述是否可以包含换行符或其他内容?对于您的示例,这应该足够/{(.*)}了/g
并解析匹配项以获取捕获组而不是整个匹配项请参见。@georg这是一种重复。他似乎不知道如何获取捕获组而不是整个匹配项。这不是重复项-OP知道如何提取内容,他们的问题是如何在没有匹配分隔符的情况下提取。有些不清楚您的问题是:代码和描述是否可以包含换行符或其他内容?对于您的示例,这应该足够/{(.*)}了/g
并解析匹配项以获取捕获组而不是整个匹配项请参见。@georg这是一种重复。他似乎不知道如何获取捕获组而不是整个匹配项。这不是重复项-OP知道如何提取内容,他们的问题是如何在没有匹配分隔符的情况下提取。有些不清楚您的问题是:代码和描述是否可以包含换行符或其他内容?对于您的示例,这应该是足够的/{(.*)}/g
,并解析匹配以获取捕获组而不是整个匹配。请参见。@georg这是一种重复。他似乎不知道如何获取捕获组而不是整个匹配。