English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Come estrarre numeri da una stringa utilizzando regex?

Puoi utilizzare una delle seguenti espressioni regolari per abbinare i numeri in una stringa data -

\d+
O
"([0-9]+)"

Esempio 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractingDigits {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("输入示例文本:");
      String data = sc.nextLine();
      //正则表达式以匹配字符串中的数字
      String regex = "\\d+";
      //创建一个模式对象
      Pattern pattern = Pattern.compile(regex);
      //创建一个Matcher对象
      Matcher matcher = pattern.matcher(data);
      System.out.println("Given string中的数字为:");
      while(matcher.find()) {
         System.out.print(matcher.group() + " ");
      }
   }
}

输出结果

输入示例文本:
这是一个包含23、46和11223数字的示例文本
Given string中的数字为:
23 46 11223

例子2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Just {
   public static void main(String[] args) {
      String data = "abc12def334hjdsk7438dbds3y388";
      //正则表达式到数字
      String regex = "([0-9]+)";
      //创建一个模式对象
      Pattern pattern = Pattern.compile(regex);
      //创建一个Matcher对象
      Matcher matcher = pattern.matcher(data);
      System.out.println("Given string中的数字为:");
      while(matcher.find()) {
         System.out.print(matcher.group() + " ");
      }
   }
}

输出结果

Given string中的数字为:
12 334 7438 3 388
Potrebbe interessarti