![](/img/trans.png)
[英]Extract specific values or substrings from long string using regex in java
[英]Extract few substrings from one string using a single regex
作為輸入,我得到一個字符串,例如“ 0123456789@site.com”。 所有部分都是可變的。 唯一的規則是前面的數字始終為10,然后是“ @”。 我需要一個正則表達式,它將允許我提取“ 12345”(即位置2到6的數字)和“ site.com”子字符串。 例如,在上述情況下,結果可能是“ 12345site.com”或“ 12345:site.com”。 可以使用單個正則表達式嗎? 我們如何跳過第7位到第10位以及“ @”中的第一個數字? Java中的示例將不勝感激。
如果我正確理解了您,則此正則表達式將
\d(\d{5})\d{4}@(.+)
然后使用
matcher.group(1) + matcher.group(2)
連接組。
Java代碼:
public static void main(String[] args) {
String s = "0123456789@site.com";
String patternString = "\\d(\\d{5})\\d{4}@(.+)";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(s);
if (matcher.matches()) {
System.out.println(matcher.group(1) + matcher.group(2));
// shows "12345site.com"
}
}
專門針對您的輸入模式:
\\d{1}(\\d{5})\\d*@(.*)
2 capturing groups:
group 1: (\d{5})
group 2: (.*)
Input: 0123456789@site.com
Output: 12345
site.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.