菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Java 教程

Java HOME Java Intro Java Get Started Java Syntax Java Output Java Comments Java Variables Java Data Types Java Type Casting Java Operators Java Strings Java Math Java Booleans Java If...Else Java Switch Java While Loop Java For Loop Java Break/Continue Java Arrays

Java Methods

Java Methods Java Method Parameters Java Method Overloading Java Scope Java Recursion

Java Classes

Java OOP Java 类/对象 Java 类属性 Java 类方法 Java 构造函数 Java 访问修饰符 Java 封装 Java 包/API Java 继承 Java 多态 Java 内部类 Java 抽象 Java 接口 Java 枚举 Java 用户输入 Java 日期 Java ArrayList Java LinkedList Java 列表排序 Java HashMap Java HashSet Java Iterator Java 包装类 Java 异常 Java 正则表达式 Java 线程 Java Lambda Java 高级排序

Java File Handling

Java Files Java Create/Write Files Java Read Files Java Delete Files

Java How To's

两个数相加 统计单词数 反转字符串 数组元素求和 字符串转数组 数组排序 计算数组平均值 查找数组中最小元素 ArrayList 循环 HashMap 循环 Enum 循环 矩形面积 奇数或偶数 正数或负数 平方根 随机数

Java 参考

Java Reference Java Keywords Java String Methods Java Math Methods Java Output Methods Java Arrays Methods Java ArrayList Methods Java LinkedList Methods Java HashMap Methods Java Scanner Methods Java Iterator Methods Java Errors & Exceptions

Java 示例

Java Examples Java Compiler Java Exercises Java Quiz Java Server Java Certificate


Java 正则表达式


什么是正则表达式?

正则表达式是构成搜索模式的字符序列。当你在文本中搜索数据时,可以使用此搜索模式来描述你要搜索的内容。

正则表达式可以是一个单独的字符,也可以是更复杂的模式。

正则表达式可用于执行所有类型的文本搜索文本替换操作。

Java 没有内置的正则表达式类,但我们可以导入 java.util.regex 包来处理正则表达式。该包包含以下类:

  • Pattern 类 - 定义模式(用于搜索)
  • Matcher 类 - 用于搜索模式
  • PatternSyntaxException 类 - 指示正则表达式模式中存在语法错误

示例

查找句子中单词“w3schools”的任何出现情况

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

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

自己动手试一试 »

示例解释

在此示例中,将搜索句子中的单词“w3schools”。

首先,使用 Pattern.compile() 方法创建模式。第一个参数表示正在搜索的模式,第二个参数包含一个标志,表示搜索应不区分大小写。第二个参数是可选的。

使用 matcher() 方法在字符串中搜索模式。它返回一个 Matcher 对象,其中包含有关执行的搜索信息。

如果字符串中找到该模式,find() 方法将返回 true,否则返回 false。



标志

compile() 方法中的标志会更改搜索的执行方式。以下是其中一些:

  • Pattern.CASE_INSENSITIVE - 在执行搜索时将忽略字母的大小写。
  • Pattern.LITERAL - 模式中的特殊字符在执行搜索时不会具有特殊含义,而是被视为普通字符。
  • Pattern.UNICODE_CASE - 与 CASE_INSENSITIVE 标志一起使用,还可以忽略非英文字母的大小写。

正则表达式模式

Pattern.compile() 方法的第一个参数是模式。它描述了正在搜索的内容。

方括号用于查找一组字符

表达式 描述
[abc] 在方括号之间查找一个字符
[^abc] 查找方括号中未包含的字符
[0-9] 查找 0 到 9 范围内的一个数字

元字符

元字符是具有特殊含义的字符

元字符 描述
| 匹配由 | 分隔的任何一个模式,例如:cat|dog|fish
. 查找任意单个字符的实例
^ 匹配字符串的开头,例如:^Hello
$ 匹配字符串的结尾,例如:World$
\d 查找数字
\s 查找空白字符
\b 匹配单词的开头,例如:\bWORD,或单词的结尾,例如:WORD\b
\uxxxx 匹配十六进制数字 xxxx 指定的 Unicode 字符

量词

量词定义数量

量词 描述
n+ 匹配包含至少一个 n 的任何字符串
n* 匹配包含零个或多个 n 的任何字符串
n? 匹配包含零个或一个 n 的任何字符串
n{x} 匹配包含 Xn 的序列的任何字符串
n{x,y} 匹配包含 X 到 Y 个 n 的序列的任何字符串
n{x,} 匹配包含至少 X 个 n 的序列的任何字符串



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持