0

我有这种格式的字典

Traditional Simplified [pin1 yin1] /English equivalent 1/equivalent 2/
^1          ^2         ^3          ^4                  ^5

例如

制 制 [A A zhi4] /to split the bill/to go Dutch/
^1 ^2 ^3        ^4                 ^5

T字帳 T字帐 [T zi4 zhang4] /T-account (accounting)/xyz abc
^1    ^2   ^3             ^4                     ^5

我想在 sqlite 数据库 TABLE WITH 5 Column中转换它。尝试使用Regex获得解决方案没有成功。

编辑 :

我想要像这样的输出

制 制 [A A zhi4] /to split the bill/to go Dutch/

制 
制 
[A A zhi4] 
/to split the bill
/to go Dutch/

任何帮助将不胜感激...

4

1 回答 1

1

一种可能的正则表达式(每行使用)可能是

(\S+)\s+(\S+)\s+\[([^\[\]]*)\]\s*/([^/]*)/([^/]*)

在 Java 中:

Pattern regex = Pattern.compile(
    "(\\S+)       # one or more non-whitespace characters -> group 1\n" +
    "\\s+         # one or more whitespace characters\n" +
    "(\\S+)       # one or more non-whitespace characters -> group 2\n" +
    "\\s+         # one or more whitespace characters\n" +
    "\\[          # [\n" +
    "([^\\[\\]]*) # anything except [] -> group 3\n" +
    "\\]          # ]\n" +
    "\\s*/        # optional whitespace, then /\n" +
    "([^/]*)      # anything except / -> group 4\n" +
    "/            # /\n" +
    "([^/]*)      # anything except / -> group 5", 
    Pattern.COMMENTS);

匹配后,五个组将在Matcher对象的.group(n)(for 1 <= n <= 5) 中。

于 2013-02-19T11:05:45.743 回答