Javascript,模式正则表达式

Javascript,模式正则表达式,javascript,regex,Javascript,Regex,最初我有一篇这样的文章 asa#fathernode {oi#string oi2#string} 我的脚本得到如下数组(因为正在进行其他处理): 然后我制作一个如下的字符串: "asa#fathernode\n{oi#string\noi2#string}\n" 未处理字符串之前的脚本(没有“\n”): 我用的是: textoFather = textoFather.match(/{(.*?)}/)[1]; 为了得到花括号之间的东西,那是 "oi#stringoi2#string" 但

最初我有一篇这样的文章

asa#fathernode
{oi#string
oi2#string}
我的脚本得到如下数组(因为正在进行其他处理):

然后我制作一个如下的字符串:

"asa#fathernode\n{oi#string\noi2#string}\n"
未处理字符串之前的脚本(没有
“\n”
):

我用的是:

textoFather = textoFather.match(/{(.*?)}/)[1];
为了得到花括号之间的东西,那是

"oi#stringoi2#string"
但我需要按原样格式化

oi#string
oi2#string
因为(我相信)该模式没有得到
“\n”
,所以
textoFather
返回
null

我真的需要得到
“\n”
,脚本的其余部分才能继续工作(许多其他事情正在发生,但重要的是要将文本格式化),而且呈现的文本只是一个示例,实际文本非常大,并且有一些小的差异(文本字符串实际上可以是许多其他单词,而不仅仅是字符串)

Obs:我真的希望这只是一个模式(匹配)问题,但如果不是,我只是一个JavaScript初学者,我的母语不是英语,所以我需要一个非常详细的解释如何解决我的问题

因为(我相信)该模式没有得到
“\n”
,所以
textother
返回
null

您是对的,
元字符与换行符不匹配。从:

(小数点)匹配除换行符以外的任何单个字符

您可以改用
[\s\s]

/{([\s\S]*?)}/
[\s\s]
是一个字符类
\s
匹配任何空白字符,
\s
匹配所有非空白字符。因此,它们一起匹配每个角色

或者您可以使用
[^}]
来匹配每个非
}
字符:

/{([^}]*)}/
那么你甚至不必让量词变懒

因为(我相信)该模式没有得到
“\n”
,所以
textother
返回
null

您是对的,
元字符与换行符不匹配。从:

(小数点)匹配除换行符以外的任何单个字符

您可以改用
[\s\s]

/{([\s\S]*?)}/
[\s\s]
是一个字符类
\s
匹配任何空白字符,
\s
匹配所有非空白字符。因此,它们一起匹配每个角色

或者您可以使用
[^}]
来匹配每个非
}
字符:

/{([^}]*)}/

那么你甚至不必让量词变懒。

格式化问题已经是获得好答案的一大步,那么你为什么不花时间去做呢?格式化问题已经是获得好答案的一大步,那么你为什么不花时间去做呢?