gpt4 book ai didi

java - 字符串解析: how to isolate parameters when a parameter can be a nested function

转载 作者:行者123 更新时间:2023-11-30 05:57:30 26 4
gpt4 key购买 nike

在java中,我尝试使用常规处理来自FUNC{parameter,parameter}的函数表达式。我已经隔离了包含参数的字符串,现在我必须从字符串中提取它们。我的想法是使用 string.split 方法和 , 符号分割参数。 IE。 表达式.split(",").

问题是参数本身可以是函数,即类似于

FUNC1{FUNC2{1,2},7}

因此仅按 , 进行分割是行不通的。我现在正在尝试的是以下正则表达式:

[^\\{]+,[^\\}]+

我认为这意味着,用 , 分割参数,前面是不是 { 的内容,后面是不是 的内容>}。但这也不起作用...可能是什么问题?

最佳答案

正则表达式无法解析无限递归结构,为什么不直接读入字符串并解析出参数?

一次读取输入的一个字符,找到第一个左大括号,继续读取,直到遇到不在另一组大括号内的逗号(计算左大括号和右大括号,直到它们相等),然后设置字符串在这些位置与第一个参数的值之间。然后继续读取输入,直到遇到不在另一组大括号内的右大括号,然后将此值设置为第二个参数。通过一些智能编程(不完全是我描述的算法),您可以一次性解析整个输入,包括参数内引用的每个函数以及该函数的参数。

关于java - 字符串解析: how to isolate parameters when a parameter can be a nested function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572317/

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