Java正規表現を使用して文字列から数値を抽出する
以下は、Javaで正規表現を使用して文字列から数値を抽出する方法を示す例です。
文字列を解析してそこから情報を抽出できることは、すべてのテスターが持つべき重要なスキルです。これは、APIをテストするときに特に役立ち、JSONまたはXML応答を解析する必要があります。
次のJava正規表現の例は、文字列から数字または数字を抽出することに焦点を当てています。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExamples {
public static void main(String[]args) {
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("string1234more567string890");
while(m.find()) {
System.out.println(m.group());
}
}
}
出力:
1234
567
890
関連:
- JavaでStringをIntに変換する方法
- Javaで文字列を逆にする方法
- Javaで文字列を比較する方法
文字列から特定の数値のみを抽出する場合は、group()
にインデックスを指定できます。 機能。
たとえば、文字列string1234more567string890
から2番目の数字のセットのみを抽出したい場合 、つまり567
次に、次を使用できます:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExamples {
private static final Pattern p = Pattern.compile("[^\\d]*[\\d]+[^\\d]+([\\d]+)");
public static void main(String[] args) {
// create matcher for pattern p and given string
Matcher m = p.matcher("string1234more567string890");
// if an occurrence if a pattern was found in a given string...
if (m.find()) {
System.out.println(m.group(1)); // second matched digits
}
}
}
出力:
567
パターンの説明[^\d]*[\d]+[^\d]+([\d]+)
- 数字以外のものは無視してください
- 数字(最初の数字)を無視する
- 数字以外は無視してください
- 2番目の番号をキャプチャします
XMLまたはHTMLタグを処理する場合、属性から値を抽出する必要がある場合があります。たとえば、次のタグについて考えてみます
<result name="response" numFound="9999" start="0">
番号9999
を抽出するには 次のコードを使用できます:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExamples {
public static void main(String[]args) {
Pattern pattern = Pattern.compile("numFound=\"([0-9]+)\"");
Matcher matcher = pattern.matcher("");
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
出力:
9999
Java正規表現を使用して、数字と文字を含む文字列の一部を抽出できます。この文字列がSample_data = YOUR SET ADDRESS IS 6B1BC0 TEXT
であるとします。 6B1BC0
を抽出します これは6文字の長さです 、使用できます:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExamples {
public static void main (String[] args) {
Pattern p = Pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");
Matcher n = p.matcher("YOUR SET ADDRESS IS 6B1BC0 TEXT");
if (n.find()) {
System.out.println(n.group(1)); // Prints 123456
}
}
}
出力:
6B1BC0
この形式の文字列があるとしますbookname=testing&bookid=123456&bookprice=123.45
キーと値のペアbookid=123456
を抽出します 使用します:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExamples {
public static void main(String[] args) {
String s = "bookname=cooking&bookid=123456&bookprice=123.45";
Pattern p = Pattern.compile("(?<=bookid=)\\d+");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group());
}
}
}
出力:
123456
-
Javaの入力文字列から数値を抽出するにはどうすればよいですか?
java.lang.String クラスは、文字列を処理するためのメソッドのかなりの尺度を提供します。これらのメソッドを使用すると、トリミング、連結、変換などの文字列に対する操作を実行できます。 および比較 。 replaceAll()を使用して、指定された文字列から数値を抽出できます。 文字列のメソッド クラス。 例 import java.util.Scanner; public class StringExtractTest { public static void main(String[] args) { Str
-
Pythonを使用して文字列から数値を抽出するにはどうすればよいですか?
文字列から各桁を抽出するには- >>> str1='a34e 345 bcd 5he 78 xyz' >>> for s in str1: if s.isdigit():print (s) 3 4 3 4 5 5 7 8 単語がスペース文字で区切られている文字列から整数のみを抽出するには- >>> str1='h3110 23 cat 444.4 rabbit 11 2 dog' >>> for s in str1.split(): if s.isdigit(): print ((s))