文本块匹配需要正则表达式帮助-javascript

文本块匹配需要正则表达式帮助-javascript,javascript,regex,Javascript,Regex,我试图帮助一些人对VS代码进行扩展,但当涉及到匹配我们使用的语言的一个称为文本块的特性时,我们遇到了一些困难 文本块以@符号开头,后面紧跟一个可包含任何\w字符的标记。文本块以相同的标记结束,在空行上没有装饰。中间的文本可以包含任何常规ascii字符。例如: string text = @text 这是一个文本块,这是一个 可以允许您输入大量文本 并将它们赋给一个变量。使用的标签 由开发人员决定,可以是任何东西 甚至像上面这样的新线 或者像这样的台词 任何帮助都将不胜感激 text ; st

我试图帮助一些人对VS代码进行扩展,但当涉及到匹配我们使用的语言的一个称为文本块的特性时,我们遇到了一些困难

文本块以@符号开头,后面紧跟一个可包含任何\w字符的标记。文本块以相同的标记结束,在空行上没有装饰。中间的文本可以包含任何常规ascii字符。例如:

string text = @text
这是一个文本块,这是一个 可以允许您输入大量文本 并将它们赋给一个变量。使用的标签 由开发人员决定,可以是任何东西

甚至像上面这样的新线 或者像这样的台词

任何帮助都将不胜感激

text
;

string text2 = @text
当然,你也可以 其中的多个:/ 文本 ;

如果您有任何帮助,我们将不胜感激,并提前感谢您的关注。

您可以使用

@(\w+)\r?\n(?:[ -~]*\r?\n)*?\1$
@逐字匹配 \w+\r?\n在组1中捕获1+个单词字符,后跟换行符 ?:[-~]*\r?\n*?对后跟换行符的任何ASCII字符重复尽可能少的次数 \1对组1中捕获的内容的反向引用将结束标记与同一单词匹配 $字符串结尾
听起来你需要一个解析器,而不是正则表达式。谢谢你,这帮了大忙。你的解释肯定也很有帮助。