2012-03-25 73 views
0

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

例如我可能有一个字符串,它看起来像这样:

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

,我发现这两个环节,但我仍然感到困惑: link 1 link 2

+0

字符串分割两次......一旦通过,然后将其转换回字符串...,然后再次分裂:

要分割字符串,可以使用.split()方法“<”但那失败了...这不是我想要的..不熟悉正则表达式 – BigBug 2012-03-25 07:37:24

+0

你究竟是什么感到困惑?把你的时间和学习正则表达式:http://www.regular-expressions.info/tutorial.html – 2012-03-25 07:39:49

回答

3

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

括号意味着你会匹配其中的任何字符。

+0

谢谢,我刚刚意识到,所以我想搜索的任何字符可以放在“[]”之间,如果我想搜索对于范围我可以使用“ - ”再次感谢 – BigBug 2012-03-25 07:51:23

1

有两种方法在一个正则表达式来实现or

  1. 交替使用|操作:

    • a|b意味着 “ab”。
    • 任何子正则表达式可以是对|的任一侧:one|two.*three指“one或(two,接着任意字符串,随后three)”。
    • 您可能需要封闭交替括号来限制交替的范围:^(one|two.*three)$
  2. 字符类:

    • [ab]的意思是“一个字符从收集ab的”。
    • 可能倒置:[^ab]的意思是“除ab之外的任何字符”。
    • 支持范围:[a-b]表示“集合abc中的任何字符”。

所以你的情况,可能的正则表达式。将(<|>)[<>],其中后者是优选的,因为这两种选择在长度上一个字符。在“>”

String[] splitArray = subjectString.split("[<>]")