Դաս 16։ Java – Regular Expressions

0

Java-ն տրամադրում է java.util.regex փաթեթը ձևաչափերը  regular expression-ի (ռեգուլար արտահայտությունների) հետ համադրման համար: Java  regular expression-ը շատ նման է Perl ծրագրավորման լեզվին և շատ հեշտ է սովորել:

regular expression-ը նիշերի հատուկ հաջորդականությունն է, որը օգնում է ձեզ գտնել կամ համադրել այլ տողեր կամ տողերի հավաքածուներ՝ օգտագործելով հատուկ շարադասություն՝ syntax, որը պահվում է շաբլոնում: Դրանք կարել է օգտագործվել տեքստի և տվյալների որոնման, խմբագրման կամ այլ մանիպուլյացիայի համար:

 

Java.util.regex փաթեթը հիմնականում բաղկացած է հետյաևլ երեք դասերից `

 

Pattern Class – Pattern object-ը հանդիսանում է regular expression-ը հերթական ներկայացում: Pattern Class-ը չի տրամադրում public կոնստրուկտորներ: pattern ստեղծելու համար նախ պետք է գործարկել իր public static compile() մեթոդներից մեկը, որը այնուհետեւ կվերադարձնի Pattern object: Այս մեթոդները ընդունում են regular expression-ը որպես առաջին argument:

 

Matcher Class – A Matcher օբյեկտը մեխանիզմ է, որը ինտերպրետացիայի է ենթարկում շաբլոնը և իրականացնում է համադրման գործառույթների մուտքի տողում: Ինչպես Pattern class-ը, Matcher-ը չի սահմանում է  public կոնստրուկտորներ: Դուք ստանում եք Matcher օբյեկտը հրահանգ տալով patterner () մեթոդին՝ Pattern օբյեկտում:

 

PatternSyntaxException – PatternSyntaxException օբյեկտը չստուգված բացառություն է, որը մատնանշում է syntax-ի սխալը հերթական regular expression-ի շաբլոնում։

 

Capturing Groups

Capturing group-ը միակ միջոցն է, որը թույլ է տալիս վերաբերվել բազմաթիվ նիշերին որպես մեկ ամբողջություն, մեկ միավոր: Դրանք ստեղծելու համար անհրաժեշտ է համապատասխան նիշերը տեղադրել կոր փակագծերում: Օրինակ, (շուն) արտահայտությունը ստեղծում է մի խումբ, որը պարունակում է «շ», «ու» և «ն» տառերը:

 

Capturing group-ը համարակալվում է իրենց բաց փակագածերի ձախից դեպի աջ հաշվարկով: Օրինակ ((A) (B (C))) արտահայտությունում գոյություն ունեն չորս խումբ,

 

((A) (B (C)))

(A)

(B (C))

(C)

Պարզելու համար, թե քանի խումբ կա արտահայտության մեջ, օգտագործեք groupCount մեթոդը matcher օբյեկտի վրա: groupCount մեթոդը վերադարձնում է int, որը ցույց է տալիս ներգրավող խմբերի թիվը, որոնք ներկա են շաբլոնում։

 

Գոյություն ունի նաև հատուկ խումբ, group 0, որը միշտ ներկայացնում է ամբողջ արտահայտությունը: Այս խումբը ներառված չէ groupCount-ի կողմից հաշվարկած ընդհանուր թվում։

 

Օրինակ

 

Հետևյալ օրինակում նկարագրված է, թե ինչպես կարելի է գտնել թվային տողը տրված ենթահամակարգում՝

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class RegexMatches {

 

public static void main( String args[] ) {

// String to be scanned to find the pattern.

String line = “This order was placed for QT3000! OK?”;

String pattern = “(.*)(\\d+)(.*)”;

 

// Create a Pattern object

Pattern r = Pattern.compile(pattern);

 

// Now create matcher object.

Matcher m = r.matcher(line);

if (m.find( )) {

System.out.println(“Found value: ” + m.group(0) );

System.out.println(“Found value: ” + m.group(1) );

System.out.println(“Found value: ” + m.group(2) );

}else {

System.out.println(“NO MATCH”);

}

}

}

Արդյունքը՝

Found value: This order was placed for QT3000! OK?

Found value: This order was placed for QT300

Found value: 0

 

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.