Dragðu tölur úr streng með Java reglulegu segð

Eftirfarandi eru dæmi sem sýna hvernig á að draga út tölur úr streng með reglulegum segðum í Java.

Að vera fær um að flokka strengi og vinna úr upplýsingum úr þeim er lykilhæfileiki sem allir prófanir ættu að hafa. Þetta er sérstaklega gagnlegt þegar þú prófar forritaskil og þú þarft flokka JSON eða XML svar.

Eftirfarandi Java Regular Expression dæmi einbeita sér að því að draga tölur eða tölustafi úr streng.




Dragðu úr öllum tölum úr streng

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());
}
} }

Framleiðsla:

1234 567 890

Tengt:




Dragðu níunda tölustafinn úr streng

Ef þú vilt draga aðeins tilteknar tölur úr streng geturðu gefið vísitölu í group() virka.



Til dæmis, ef við vildum aðeins draga seinni tölustafinn úr strengnum string1234more567string890, þ.e.a.s. 567 þá getum við notað:

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
}
} }

Framleiðsla:

567

Skýring á mynstrinu [^d]*[d]+[^d]+([d]+)


  • hunsa allar óstafrænar tölur
  • hunsa hvaða tölu sem er (fyrsta talan)
  • hunsaðu aftur allar ótölustafir
  • fanga seinni töluna


Dragðu númer úr merkiseiginleika

Þegar fjallað er um XML eða HTML merki er stundum þörf á að draga gildi úr eiginleika. Hugleiddu til dæmis eftirfarandi merki

Til að draga númer 9999 við getum notað eftirfarandi kóða:

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));
}
} }

Framleiðsla:


9999

Dragðu úr streng sem inniheldur tölustafi og stafi

Þú getur notað Java reglulega segð til að draga út hluta af streng sem inniheldur tölustafi og stafi. Segjum að við séum með þennan streng Sample_data = YOUR SET ADDRESS IS 6B1BC0 TEXT og við viljum draga 6B1BC0 sem er 6 stafir að lengd , getum við notað:

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
}
} }

Framleiðsla:

6B1BC0

Þykkni lykilgildispör með reglulegu segð

Við skulum gera ráð fyrir að við höfum streng af þessu sniði bookname=testing&bookid=123456&bookprice=123.45 og við viljum draga lykilgildisparið út bookid=123456 við myndum nota:

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());
}
} }

Framleiðsla:


123456