java - 如何在 java 中的 String 的 split() 中使用模式

标签 java regex pattern-matching

我有格式的输入

    "MG3 4F W 123 TO GH2 2F E 345" 
    or
    "MG3 4F W 123 To GH2 2F E 345"
    or
    "MG3 4F W 123 tO GH2 2F E 345"
    or
    "MG3 4F W 123 to GH2 2F E 345"

我必须根据“TO”拆分这种字符串。下面是我尝试使用模式拆分它的代码,但它给出了编译错误,你能帮帮我吗???

    public static final String DIVIDER_PATTERN = "{tT}{oO}";
     public static void main(String[] args) 
     {
        Pattern pt = Pattern.compile(DIVIDER_PATTERN);
        String hello = "Hello to World TO this tO test To how";
        String array[] = hello.split(DIVIDER_PATTERN);
        System.out.println(array[0]);
     }

最佳答案

{tT}{oO} 更改为 [tT][oO]

方括号表示character classes ,而大括号完全用于其他用途(重复运算符)。

关于java - 如何在 java 中的 String 的 split() 中使用模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898279/

相关文章:

regex - 提取 "?"之后的文本

java - 将属性 Map<Object, Class<?>> 设置为 spring.xml

.net - 正则表达式识别方程式中的正数和负数,但不识别运算符

pattern-matching - 为什么 OCaml 模式 `zero -> zero` 似乎匹配所有内容?

ruby - 使用 Ruby 查找具有更改目录的文件

asp.net - 在 IE7 中运行正则表达式验证器时的奇怪错误

list - Erlang:哪种模式匹配更有效(列表)?

java - 解析树中节点的深度

Java 棋盘棋子显示不正确

java - 名字的第一个字符,姓氏的第一个字符,然后是名字的第二个字符