使用正则表达式混淆

时间:2012-03-25 07:34:18

标签: java regex

如果我想使用正则表达式找到“<”或“>”在字符串中并根据“<”拆分字符串或“>”,我该怎么做?

例如,我可能有一个如下所示的字符串:

String str = <name> hello bob, how are you today </name>

我找到了这两个链接,但我仍感到困惑: link 1 link 2

2 个答案:

答案 0 :(得分:3)

str.split("[<>]");

括号表示您将匹配其中的任何字符。

答案 1 :(得分:1)

在正则表达式中实现or有两种方法:

  1. 使用|运算符进行轮替:

    • a|b表示“ab”。
    • 任何子正则表达式都可以位于|的任意一侧:one|two.*three表示“one或(two,后跟任意字符串,后跟{{1 }})”。
    • 您可能需要将替换括在括号中以限制更改的范围:three
  2. 角色类:

    • ^(one|two.*three)$表示“集合中的一个字符[ab]”。
    • 可以进行反转:ab表示“[^ab]a以外的任何字符”。
    • 支持范围:b表示“集合[a-b]中的任何字符”。
  3. 因此,在您的情况下,可能的正则表达式将是abc(<|>),其中后者是首选,因为两个备选方案的长度恰好是一个字符。

    要拆分字符串,您可以使用[<>]方法:

    .split()