regex - 什么都不匹配的正则表达式字符类?
问题描述
我想知道是否有一种方法可以表示一个不匹配的字符类。有人可以告诉我是否有办法吗?谢谢。
$ grep '[]' <<< a
grep: Unmatched [, [^, [:, [., or [=
解决方案
在 Java 中可以做到这一点。Java 的Pattern
类允许您创建一个字符类,它是其他两个字符类的交集。所以,如果我创建了两个没有共同字符的字符类,并取它们的交集,那么我创建了一个实际上不匹配任何字符的字符类。考虑以下代码示例。
String input = "abcdefghijklmnopqrstuvwxyz";
Pattern unPattern = Pattern.compile("[a-c&&[d-f]]");
Matcher unMatcher = unPattern.matcher(input);
System.out.println("Starting matching...");
while (unMatcher.find()) {
System.out.println("Matched " + unMatcher.group());
}
System.out.println("Ending matching.");
在上面的示例中,我有一个匹配“a”、“b”和“c”的字符类。我有第二个字符类匹配“d”、“e”和“f”。我使用运算符将它们相交&&
。由于没有通用字符,因此此正则表达式不会匹配任何内容。话虽如此,我不知道这可能有什么用。但这是可能的。
推荐阅读
- raspberry-pi - org.chromium.Chromium:错误的 ELF 类:ELFCLASS64
- ubuntu - xubuntu - 禁用开关窗口弹出
- laravel - 参数 #1 必须是 Model 类型,Pest\Mock\Mock 给定
- java - 仅在特定情况下保留 Vaadin 中的视图状态
- javascript - 取消选中在 react js 中不起作用的复选框后复选框保持选中状态
- vue.js - 输入在vue中失去焦点时如何执行功能
- r - 从 Spatstat 中的最近邻标记创建新数据框
- shell - 詹金斯:如何在脚本管道中更改外壳?
- dask - Dask ram问题
- python - 是否可以获得在 Python 中导入的 ctypes 共享库的代码覆盖率?