使用正则表达式

Java:
使用正则表达式

如何操作:

Java对regex的内置支持主要通过java.util.regex包中的PatternMatcher类。这里有一个简单的示例,用于查找并打印字符串中所有出现的单词,不区分大小写:

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.start() + " 找到 '" + matcher.group() + "'");
        }
    }
}

输出:

在位置 16 找到 'parsing'
在位置 31 找到 'Parsing'

对于像字符串分割这样的任务,你可以使用String类的split()方法与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

在Java中使用regex时,可能会有一些情况下使用外部库可以简化复杂任务。一个用于Java中处理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 次。