我需要此正則表達式幫助將String="55555 <italic>bold-italic</italic>"
分隔爲m.group[0]="55555" m.group[1]="italic" and m.group[2]="bold-italic
。目前這個表達式<(.*)>(.*)</\\1>
分開italic
和bold-italic
,但我在添加數字部分時遇到問題。正則表達式幫助java
謝謝
我需要此正則表達式幫助將String="55555 <italic>bold-italic</italic>"
分隔爲m.group[0]="55555" m.group[1]="italic" and m.group[2]="bold-italic
。目前這個表達式<(.*)>(.*)</\\1>
分開italic
和bold-italic
,但我在添加數字部分時遇到問題。正則表達式幫助java
謝謝
你可以使用:(\d+)\s*(<\w+>)(.*)<\/\w+>
演示here
Java代碼:
public static void main (String[] args) throws java.lang.Exception
{
String pattern = "(\\d+)\\s*(<\\w+>)(.*)<\\/\\w+>";
String input = "55555 <italic>bold-italic</italic>";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
if (m.find())
{
System.out.println("First group : " + m.group(1));
System.out.println("Second group : " + m.group(2));
System.out.println("Third group : " + m.group(3));
}
}
輸出:
First group : 55555
Second group : <italic>
Third group : bold-italic
當需要處理正則表達式時,我喜歡使用https://regex101.com/來嘗試不同的可能性。 它在技術上不是爲Java製作的,但仍然非常有效(有時您必須插入/刪除轉義字符才能使其工作)。
對於您的示例,m.group [0] =「55555」上的正則表達式應該類似於([1-9] *),具體取決於您想要的準確值以及該組是否應該有長度限制。
如果你想用另一個詞而不是「斜體」怎麼辦? – Evgeni
我更新了正則表達式,它應該對待其他單詞。 – SomeDude