gpt4 book ai didi

Javascript,模式正则表达式

转载 作者:行者123 更新时间:2023-11-30 10:30:14 25 4
gpt4 key购买 nike

原来我有这样一段文字;

asa#fathernode
{oi#string
oi2#string}

我的脚本得到一个这样的数组(因为正在进行其他处理):

[ "asa#fathernode" , "{oi#string" , "oi2#string}" ]

然后我创建一个这样的字符串:

"asa#fathernode\n{oi#string\noi2#string}\n"

未经处理的字符串(没有 "\n")之前我的脚本:

asa#fathernode{oi#stringoi2#string}

我正在使用:

textoFather = textoFather.match(/{(.*?)}/)[1];

要获取花括号之间的内容,那是

"oi#stringoi2#string"

但我需要它原来的格式

oi#string
oi2#string

并且因为(我相信)那个模式没有得到 "\n"textoFather 正在返回 null

我真的需要为脚本的其余部分获取 "\n" 以继续工作(许多其他事情正在发生,但重要的是让文本格式化),还有显示的文本只是一个例子,实际的文本是巨大的并且有一些小的差异(在文本字符串中实际上可以是许多其他单词而不仅仅是字符串)

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

最佳答案

because (I believe) that pattern isn't getting the "\n", the textoFather is returning null

你是对的,. 元字符不匹配换行符。来自MDN documentation :

(The decimal point) matches any single character except the newline character.

您可以使用 [\s\S] 代替:

/{([\s\S]*?)}/

[\s\S] 是一个字符类。 \s 匹配任何空白字符,\S 匹配所有不是空白字符的字符。因此,它们一起匹配每个字符。

或者您可以使用 [^}] 来匹配所有不是 } 的字符:

/{([^}]*)}/

那么你甚至不必让量词变得惰性。

关于Javascript,模式正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17270832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com