gpt4 book ai didi

java - 复杂字符串解析

转载 作者:行者123 更新时间:2023-12-02 08:01:03 27 4
gpt4 key购买 nike

我正在使用一个以文本形式保存条目的中文数据库:

繁体简体[pin1 yin1]/相当于英文1/相当于2/

我尝试使用分隔符(在 Java 中)解析它。

这是我到目前为止所拥有的:

                    String delims = "[\\[\\]/]+";
String tokens[] = str.split(delims);

问题在于英语等效项还包含分隔符标记。

例如:

⿔ ⿔ [gui1]/龟的变体|龟[gui1]/

有人会如何解析这个字符串?

我正在尝试从字符串中获取以下信息:

简化:⿔

传统:⿔

拼音:gui1

英语对应词:龟|龟[gui1]的变体

最佳答案

尝试使用正则表达式来清理整个字符串。

String text = "⿔ ⿔ [gui1] /variant of 龜|龟[gui1]/";

String pattern = "(\\S+)\\s*(\\S+)\\s*\\[(.+?)\\]\\s*/(.+?)/";

text = text.replaceAll(pattern, "$1;$2;$3;$4"));

(\\S+) --->
找到连续的非空白空间组

\\s* --->
找到连续的空白

\\[(.+?)\\] ---> gui1
找到里面的所有东西[ bla bla bla ]
'?' 将匹配最短的可能答案。
例如[ bla bla ] 而不是 [ bla bla] [ble ble ]

/(.+?)/ ---> 龟|龟[gui1]的变体
与上面相同,但找到里面的所有内容 / bla bla /
'?' 将匹配最短的

您可以测试正则表达式 here

<小时/>

现在文本变成:
⿔;⿔;gui1;龟的变体|龟[gui1]

接下来你可以继续使用;作为分隔符来分割它们

String tokens[] = text.split(";");

关于java - 复杂字符串解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8890191/

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