Regular Expressions

ერთ-ერთი პატარა პრობლემა, რომელზეც რამდენიმე კვირის წინ დავკარგე დრო, რეგულარულ გამოსახულებებს ეხებოდა. კერძოდ კი, როგორც ჯავაში ვიყენებდი მათ, ისე მინდოდა დამეწერა php-ზე ფილტრისთვის.
არ იმუშავა. მაგალითისთვის მარტივი გამოსახულება ავიღოთ.
ვთქვათ, მინდა რომ სტრიქონი შეიცავდეს მხოლოდ ლათინურ ასოებს.
ჯავაში იქნებოდა ასე:

String regex="[a-zA-Z]+”;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(”StringToMatch”);
System.out.println(matcher.matches());

იგივე გადავიტანე მეორე ენაზე.

$regex="/[a-zA-Z]/”;
echo preg_match($regex,’StringToMatch’);

მაგრამ ეს პატერნი ერგებოდა როგორც მაგალითად StringToMatch სტრიქონს, ისე asdf1234. asdf45fg67-საც.. და საერთოდ neb1$mier_texts.

საქმე იმაშია, რომ preg_match ფუნქცია აბრუნებს 1-ს იმ შემთხვევაშიც, თუ ერთხელ მაინც შეხვდა სადმე პატერნის შესაბამისი ტექსტი. თუ გვინდა რომ მთელს სტრიქონზე იმუშაოს, მაშინ უნდა ჩავამატოთ დასაწყისის (^) და დასასრულის ($) აღმნიშვნელი სიმბოლოები. ანუ გამოსახულებას უნდა ჰქონდეს სახე:
$regex="/^[a-zA-Z]$/”;

დოკუმენტაციის წაკითხვა უნდოდა დაკვირვებით… :blush2:

Tags: , ,

2 Responses to “Regular Expressions”

  1. dixTOsa Says:

    ესეიგი ეგ ^$ სიმკაცრეს ნიშნავს ზოგადად??

    $ მარტოე ეს რო დავსვა ბოლოში რა მოხება?

  2. admin Says:

    სიმკაცრეს არ ნიშნავს :) ^ სტრიქონის დასაწყისს ნიშნავს, $ - ეს კიდევ დასასრულს

გამოხმაურება