根据提供的标题、描述、标签及部分内容,我们可以整理出关于Java正则表达式的多个知识点。以下是对这些内容的详细解析: ### Java正则表达式基础知识 #### 1. 基本概念 - **正则表达式**:一种用于匹配字符串模式的强大工具。 - **Java中的正则表达式支持**:通过`java.util.regex`包提供。 #### 2. 常用符号解释 - `.`:匹配任意单个字符(除了换行符)。 - `^`:表示字符串的开头。 - `$`:表示字符串的结尾。 - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子表达式一次或多次。 - `{n}`:匹配确定次数的重复。 - `{n,}`:匹配至少n次的重复。 - `{n,m}`:匹配至少n次但不超过m次的重复。 - `[...]`:字符集,匹配方括号内的任意一个字符。 - `[^...]`:反向字符集,匹配不在方括号内的任意字符。 - `\d`:数字字符,等价于`[0-9]`。 - `\D`:非数字字符,等价于`[^0-9]`。 - `\s`:空白字符,包括空格、制表符、换页符等。 - `\S`:非空白字符,等价于`[^ \t\n\r\f\v]`。 - `\w`:单词字符,等价于`[a-zA-Z0-9_]`。 - `\W`:非单词字符,等价于`[^a-zA-Z0-9_]`。 ### 具体应用实例 #### 3. 字符串长度计算 ```java public static int len(String str) { return str.replaceAll("[^\u0000-\u00FF]", "aa").length(); } ``` - **用途**:计算包含多字节字符的字符串的实际长度。 - **说明**:通过将每个多字节字符替换为两个字符("aa"),然后计算结果字符串的长度来实现。 #### 4. 去除首尾空白字符 ```java public static String trim(String str) { return str.replaceAll("^(\\s*)|(\\s*$)", ""); } ``` - **用途**:去除字符串的首尾空白字符。 - **说明**:使用正则表达式`^(\\s*)|(\\s*$)`来匹配字符串开头和结尾的空白字符,并用空字符串替换。 #### 5. IP地址验证 ```java public static boolean isIp(String ip) { String regex = "^((25[0-5]|2[0-4]\\d|[01]?\\d?\\d)(\\.)){3}(25[0-5]|2[0-4]\\d|[01]?\\d?\\d)$"; return ip.matches(regex); } ``` - **用途**:验证是否为有效的IPv4地址。 - **说明**:使用了`^`和`$`来限定整个字符串必须完全符合这个模式,而`\\.`则用于匹配点号,避免被解释为任意字符。 #### 6. 邮箱地址验证 ```java public static boolean isEmail(String email) { String regex = "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$"; return email.matches(regex); } ``` - **用途**:验证邮箱格式是否正确。 - **说明**:确保了邮箱的基本结构,包括用户名部分可以包含字母、数字、下划线、减号和点号;域名部分也需遵循标准格式。 #### 7. URL地址验证 ```java public static boolean isUrl(String url) { String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?"; return url.matches(regex); } ``` - **用途**:验证URL是否有效。 - **说明**:此正则表达式支持http或https协议,并且对URL的基本结构进行了匹配。 #### 8. 手机号码验证 ```java public static boolean isMobile(String mobile) { String regex = "^1[34578]\\d{9}$"; return mobile.matches(regex); } ``` - **用途**:验证手机号码格式是否正确。 - **说明**:该正则表达式支持中国大陆的手机号码格式,其中以1开头,第二位为3、4、5、7、8之一,后面跟9位数字。 以上内容覆盖了Java正则表达式的多个应用场景,从基本符号的解释到具体的代码示例,希望能帮助读者更好地理解和运用Java正则表达式。
- 粉丝: 8
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip