2012-03-25 111 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("[<>]")