gpt4 book ai didi

regex - 在 Perl 中围绕一个外部字符进行拆分。组内的最小假设

转载 作者:行者123 更新时间:2023-12-01 10:52:04 25 4
gpt4 key购买 nike

我很难调整 this thread 中的答案针对以下问题:

我想拆分以下字符串:

my $string = "foo{age}, bar{height}. something_else. baz{weight,so='yes',brothers=john.smith}.test{some}"

围绕外点。结果应该是一个包含

("foo{age}, bar{height}", 
"foo{weight,parents='yes',brothers=john.smith}",
"test{some}")

我想避免假设{} 中组的内容。

我如何在 Perl 中执行此操作?

我尝试调整以下内容:

print join(",",split(/,\s*(?=\w+{[a-z,]+})/g, $string));

通过替换字符类 [] 中的内容但没有成功。

更新:

{} 组中唯一不允许的字符是 {}

最佳答案

由于您不处理嵌套大括号,因此您需要的句点不是“立即”跟在结束 } 之后的句点。 “立即”的意思是,中间没有开口 {:

split(/[.]\s*(?![^{]*[}])/g, $string)

或者,匹配您感兴趣的部分:

(?:[^.{}]|[{][^{}]*[}])+

可以是"unrolled"到:

[^.{}]*(?:[{][^{}]*[}][^.{}]*)*

关于regex - 在 Perl 中围绕一个外部字符进行拆分。组内的最小假设,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17983558/

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