如何用 PHP 制作文本旋转器

发布于 2024-10-17 08:39:28 字数 378 浏览 1 评论 0原文

我正在尝试为此类文本创建一个解析器:

{{texta1|texta2|texta3} {texta11|texta22}|{textb1|textb2} {textb11|textb22}}

我设法让这个正则表达式 ~(?<={).*?(?=})~U 工作以匹配主要内容在第一个 { 和最后一个 } 内,但是当我想用爆炸分割 {a|b|c}|{aa|bb|cc} 时,我遇到了问题,因为它不会将每个 {} 分割成一个单独的数组,但会分割每个|,如果我使用 }|{ 拆分它,则输出会有点损坏,尝试解析它以供以后旋转,因为输出中将缺少 } 和 {。

有人有一种方法可以使用正则表达式或类似的方法来做到这一点,而不需要大量的代码吗?

I am trying to create a parser for this kind of texts:

{{texta1|texta2|texta3} {texta11|texta22}|{textb1|textb2} {textb11|textb22}}

I managed to get this regex ~(?<={).*?(?=})~U working to match the main content inside the first { and last }, but when I want to split {a|b|c}|{aa|bb|cc} with explode I am having problems since it wont split each {} into a separated array but will split every |, and if I split it using }|{, the output then gets kinda broken to try to parse it for later spinning cause a } and { will be missing on the output.

Does someone has a method to do this with regex or something like that that doesn't require tons of code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青萝楚歌 2024-10-24 08:39:28

正则表达式不是为构建解析器而设计的。该网站上有一百万个帖子说明了原因。像这样的东西可能更适合http://php.net/manual/en/function。 strtok.php

regex is not made for building parsers. there are a million posts on this site showing why. something like this is maybe more suited http://php.net/manual/en/function.strtok.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文