ამოიღეთ რიცხვები სტრიქონიდან ჯავის რეგულარული გამოთქმების გამოყენებით

ქვემოთ მოცემულია მაგალითები, რომლებიც აჩვენებს, თუ როგორ უნდა ამოვიღოთ რიცხვები სტრიქონიდან ჯავას რეგულარული გამონათქვამების გამოყენებით.

სტრიქონების გაანალიზება და მისგან ინფორმაციის მოპოვება არის მთავარი უნარი, რომელიც ყველა ტესტერს უნდა ჰქონდეს. ეს განსაკუთრებით სასარგებლოა 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

დაკავშირებული:




ამოიღეთ მე –9 ციფრი სიმებიდან

თუ სტრიქონიდან მხოლოდ გარკვეული ციფრების ამოღება გსურთ, შეგიძლიათ მიუთითოთ ინდექსი group() ფუნქცია

მაგალითად, თუ გვსურდა სიმების მეორე სიმრავლე გამოვყოთ სიმებიდან string1234more567string890, ანუ 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]+)


  • იგნორირება ნებისმიერი არანიშნა
  • ნებისმიერი ციფრის უგულებელყოფა (პირველი ნომერი)
  • კვლავ უგულებელყოფს ნებისმიერ არანიშნას
  • მეორე რიცხვის აღება


ამოიღეთ ნომერი Tag ატრიბუტიდან

XML ან HTML ტეგებთან ურთიერთობისას, ზოგჯერ საჭიროა ატრიბუტიდან მნიშვნელობის ამოღება. მაგალითად, გაითვალისწინეთ შემდეგი ტეგი

ამოიღონ ნომერი 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

საინტერესო სტატიები