也可以使用嵌入式标志表达式来启用各种标志。嵌入式标志表达式是双参数版本的compile的替代方法,并且在正则表达式本身中指定。下面的示例是使用(?i)标志表达式来启用不区分大小写的匹配。
下面列出了另一个标志表达式:
(?x),相当于 Pattern.COMMENTS
(?m),相当于 Pattern.MULTILINE
(?s),相当于 Pattern.DOTTAL
(?u),相当于 Pattern.UNICODE_CASE
(?d),相当于 Pattern.UNIX_LINES
package org.nhooo.example.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmbeddedFlagDemo {
public static void main(String[] args) {
// 定义以(?i)开头的正则表达式
// 不区分大小写的匹配
String regex = "(?i)the";
String text = "The quick brown fox jumps over the lazy dog";
// 获取所需的匹配器
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
// 查找每个匹配并打印
while (matcher.find()) {
System.out.format("Text \"%s\" found at %d to %d.%n",
matcher.group(), matcher.start(),
matcher.end());
}
}
}该程序的结果是:
Text "The" found at 0 to 3. Text "the" found at 31 to 34.