簡體   English   中英

具有匹配文本和特殊字符的 Java 正則表達式

[英]Java regular expression with Matching text and special charachter

您好,我是 Java 正則表達式的新手。 我有以下字符串

String s = " "KBC_2022-12-20-2004_IDEAL333_MASTER333_2022-12-20-1804_SUCCESS";

我只想打印附加了 MASTER 的“333”。 輸出應為 333。有人可以幫我為此編寫正則表達式嗎? 基本上代碼應該打印“MASTER”和下一個“_”之間的值。 這里是 333,但該值可以是任意數量的字符,不限於長度 3。

您可以使用此正則表達式: (?<=MASTER)[0-9]+(?=\_)

我們正在尋找MASTER_之間的所有內容:

  • 回顧MASTER之后的所有內容: (?<=MASTER)
  • 前瞻:在_之前發生的一切: (?=\_)

regex101.com上試試

你可以做MASTER(\\d+)_

Pattern p = Pattern.compile("MASTER(\\d+)_");
Matcher m = p.matcher(" KBC_2022-12-20-2004_IDEAL333_MASTER333_2022-12-20-1804_SUCCESS");
if (m.find()) {
    System.out.println(m.group(1)); // 333
}
m = p.matcher(" KBC_2022-12-20-2004_IDEAL333_MASTER123_2022-12-20-1804_SUCCESS");
if (m.find()) {
    System.out.println(m.group(1)); // 123
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM