שימוש בביטויים רגולריים

Java:
שימוש בביטויים רגולריים

איך לעשות:

התמיכה המובנית של ג’אווה ב-regex מתבצעת בעיקר דרך המחלקות Pattern ו-Matcher בחבילה java.util.regex. הנה דוגמה פשוטה למציאה והדפסה של כל המופעים של מילה במחרוזת, ללא תלות ברישיות:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String text = "Regex is great for parsing. Parsing with regex is powerful.";
        String wordToFind = "parsing";
        
        Pattern pattern = Pattern.compile(wordToFind, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(text);
        
        while (matcher.find()) {
            System.out.println("נמצאה '" + matcher.group() + "' במיקום " + matcher.start());
        }
    }
}

פלט:

נמצאה 'parsing' במיקום 16
נמצאה 'Parsing' במיקום 31

למשימות כמו פיצול מחרוזות, ניתן להשתמש בשיטת split() של המחלקה String עם regex:

public class SplitExample {
    public static void main(String[] args) {
        String text = "Java,Python,Ruby,JavaScript";
        String[] languages = text.split(",");
        
        for (String language : languages) {
            System.out.println(language);
        }
    }
}

פלט:

Java
Python
Ruby
JavaScript

כאשר עובדים עם regex בג’אווה, ייתכן שיהיו מקרים שבהם ספרייה חיצונית תוכל להפשיט משימות מורכבות. אחת מהספריות החיצוניות הפופולריות לעבודה עם regex בג’אווה היא Apache Commons Lang. היא מציעה כלים כמו StringUtils שעושים כמה משימות regex פשוטות יותר. הנה איך להשתמש בה לספירת מופעים של תת-מחרוזת:

import org.apache.commons.lang3.StringUtils;

public class CommonsLangExample {
    public static void main(String[] args) {
        String text = "Regex makes text processing easier. Processing text with regex is efficient.";
        String substring = "processing";
        
        int count = StringUtils.countMatches(text, substring);
        System.out.println("'" + substring + "' מופיע " + count + " פעמים.");
    }
}

לשימוש ב-Apache Commons Lang, יש לכלול אותה בפרויקט שלך. אם אתה משתמש ב-Maven, הוסף תלות זו ל-pom.xml שלך:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- בדוק את הגרסה האחרונה -->
</dependency>

פלט:

'processing' מופיע 2 פעמים.