ქვემოთ მოცემულია მაგალითები, რომლებიც აჩვენებს, თუ როგორ უნდა ამოვიღოთ რიცხვები სტრიქონიდან ჯავას რეგულარული გამონათქვამების გამოყენებით.
სტრიქონების გაანალიზება და მისგან ინფორმაციის მოპოვება არის მთავარი უნარი, რომელიც ყველა ტესტერს უნდა ჰქონდეს. ეს განსაკუთრებით სასარგებლოა 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
დაკავშირებული:
თუ სტრიქონიდან მხოლოდ გარკვეული ციფრების ამოღება გსურთ, შეგიძლიათ მიუთითოთ ინდექსი 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]+)
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