Javascript 如何使用正则表达式解析类似JSON的文件

Javascript 如何使用正则表达式解析类似JSON的文件,javascript,regex,Javascript,Regex,我有这个输入数据的结构,它就像JSON一样,但不包含字符串。我只需要从这些数据中解析一些信息 { .appVersion = "1230"; DisplayStrings = ( A ); customParameters = ( { name = Axes;.......(continues)}''' 代码看起来是这样的,这里发生的是匹配,但搜索直到最后出现分号。我尝试了所有我发现的非贪婪的技巧和技巧,但我感到无助 const regex = /.appVersion = (".*"?);/


我有这个输入数据的结构,它就像JSON一样,但不包含字符串。我只需要从这些数据中解析一些信息

{ .appVersion = "1230"; DisplayStrings = ( A ); customParameters = ( { name = Axes;.......(continues)}'''
代码看起来是这样的,这里发生的是匹配,但搜索直到最后出现分号。我尝试了所有我发现的非贪婪的技巧和技巧,但我感到无助

const regex = /.appVersion = (".*"?);/
const found = data.match(regex)
console.log(found)

如何访问保存在.appVersion变量下的值?

您需要在
appVersion
之前转义
,因为它是正则表达式中的一个特殊字符,您可以使用
\d
而不是
*
来只匹配数字。如果您只想捕获数字,而不需要引号,则可以将其从括号中去掉

const regex = /\.appVersion = "(\d+)";/
const found = data.match(regex)
const appVersion = found[1];

您的正则表达式正在查找正则表达式中的“任意字符”。用反斜杠转义:

/\.appVersion = ("\d+");/
如果那是你需要的


我不确定你想解析的格式来自何处,但是考虑询问(制作)你的数据提供者返回JSON字符串,这样你就可以很容易地调用<代码> JSON.PARSER()/<代码>这两个节点都在节点和浏览器环境中工作。

< P>不要使用<代码> .*/COD>捕获值,它是贪婪的。p> 您可以使用类似于
\“[^\”]*
-匹配引号,然后匹配除引号以外的任何字符,尽可能多地匹配

试一试

请注意,还应引用第一个点,空格应与示例中的完全相同。

您可以尝试以下操作:
var data='{.appVersion=“1230”;DisplayStrings=(A);customParameters=({name=Axes;…(continues)}';
常量正则表达式=/.appVersion=[^;]*///正则表达式测试:https://regex101.com/r/urX53f/1
const found=data.match(regex);
var trim=found.toString().replace(/“/g)”;//必要时删除“”
console.log(找到.toString());

控制台日志(修剪)
我想我们需要更多的信息来回答这个问题。你说这是数据的结构,但它看起来有什么不同吗?它总是看起来非常相似吗?你的异常结果\匹配项是什么?如果它总是看起来非常相似,但没有实质性的差异,我会通过执行
data.split来创建一个字符串数组(“;”)
,我会确保所有字符串都有
{
字符从开始处删除,所有字符串都会被删除空白,然后我会在数组中查找以
.appVersion
开头的字符串,然后从那里开始工作。为什么输入数据的结构是这样的?这是一个外部API还是您自己制作的?“就像JSON一样。”“我不会这么说。你有
=
以及
=({name=Axes;…(continues)}
是什么。它看起来一点也不像JSON,只是有一个大括号。啊,开始的那一段,完全忘记了。Thasnk!
const string = '{ .appVersion = "1230"; DisplayStrings = (...(continues)';
const appVersion = string.match(/\.appVersion\s*=\s*"([^"]+)"/)[1];
const regex = \.appVersion = \"([^\"]*)\";