gpt4 book ai didi

Javascript:用空格分割字符串,除非它括在圆括号、单引号或方括号中

转载 作者:行者123 更新时间:2023-12-02 22:06:20 25 4
gpt4 key购买 nike

我的方法: https://regex101.com/r/vyKG1j/1

[\s]+(?!([^[]*])|([^\(]*\)))

不幸的是,这在封装括号 ex: (a b (c d)) 方面存在问题,并且我无法实现撇号搜索。

示例:“a b (a (a b)) [a b c d] '测试字符串' (a b)”
期望结果:["a", "b", "(a (a b))", "[a b c d]", "'test string'", "(a b)"]

如果它也能处理这样的事情那就最好了。

示例:“a b abcd(a b)”
期望的结果:["a", "b", "abcd(a b)"]

正则表达式是最好的方法吗?

最佳答案

要知道某事是否可以通过正则表达式解决,要问自己的问题是 - 我可以为这个问题画一个有限自动机(状态机)。请记住,自动机没有任何存储功能。

现在让我们看看示例中具有嵌套结构的子字符串:(a (a b))

如何为这种情况编写一个通用有限自动机?通过通用我的意思是,自动机如何记住左括号按照某种模式具有相同数量的匹配右括号的次数?

这就是为什么不能仅使用just正则表达式来解析此字符串模式的原因。

特别是对于这个问题,因为它非常简单,我只需迭代字符串,保留一个堆栈来跟踪括号和引号字符以自己解析它。

关于Javascript:用空格分割字符串,除非它括在圆括号、单引号或方括号中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704792/

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