正则表达式
创始人
2025-01-08 19:37:57
0次

文章目录

    • 正则表达式
    • Java中常用的正则
    • RegexUtils

正则表达式

正则表达式(Regular Expression,简称Regex或RegExp)是一种对字符串操作的一种逻辑公式,它是用事先定义好的一些特定字符以及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式主要用于字符串的验证、搜索和替换。
1.正则表达式的组成
正则表达式由普通字符(如a到z的字母)和特殊字符(称为“元字符”)组成。元字符在正则表达式中具有特殊的含义,用于表示位置、重复、选择等。
2.元字符介绍
字符匹配
.:匹配除换行符以外的任意单个字符。
[…]:字符集合,匹配方括号内的任意字符。例如,[abc]匹配a、b或c。
[^…]:否定的字符集合,匹配不在方括号内的任意字符。
位置指定
^:匹配输入字符串的开始位置。
KaTeX parse error: Undefined control sequence: \b at position 16: :匹配输入字符串的结束位置。 \̲b̲:匹配一个单词边界,即单词的开…:匹配整个字符串为5到12位数字。
匹配IP地址:

((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
匹配电话号码:
(?0\d{2}[) -]?\d{8}
4、正则表达式的使用
正则表达式在不同的编程语言中有不同的实现方式,但基本原理相同。以下是在一些常见编程语言中使用正则表达式的简单示例:

JavaScript: let regex = /^\d{5,12}$/;   let result = regex.test("12345678901"); // true Python:  import re   pattern = re.compile(r'^\d{5,12}$')   result = pattern.match("12345678901")   if result:       print("Match") Java: String regex = "^\\d{5,12}$";   boolean result = "12345678901".matches(regex); // true 

正则表达式是一个功能强大的工具,能够处理复杂的文本匹配问题。然而,由于其语法较为复杂,对于初学者来说可能需要一定的时间来掌握。
常见应用
搜索文本:在文本中查找符合特定模式的子字符串。
文本替换:根据正则表达式匹配结果替换文本。
输入验证:验证输入是否符合特定格式,如邮箱、电话号码等。
数据提取:从文本中提取特定模式的数据。

Java中常用的正则

在Java中,正则表达式(Regular Expressions)是一种强大的文本处理工具,它允许你通过指定模式来匹配、搜索、替换文本。Java的java.util.regex包提供了对正则表达式的支持,主要类有Pattern和Matcher。
以下是一些常用的正则表达式示例,这些示例涵盖了常见的文本处理需求:
匹配电子邮件地址:
\b[A-Za-z0-9._%±]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
匹配URL:
https?😕/(?:[-\w\.]|(?:%[\da-fA-F]{2}))+
匹配IP地址(IPv4):
((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
匹配手机号码(以中国大陆11位手机号为例):
^1[3-9]\d{9}$
匹配身份证号码(中国大陆18位身份证号码):
1\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[\dXx]$
匹配整数:
-?\d+
匹配浮点数(包括正数、负数和小数):
-?\d+(\.\d+)?
匹配中文字符:
[\u4e00-\u9fa5]
匹配由数字和字母组成的字符串:
[A-Za-z0-9]+
匹配HTML标签:
<([a-z]+)([^<]+)(?:>(.)|\s*\/>)
请注意,正则表达式的编写依赖于你的具体需求,上述示例可能需要根据实际情况进行调整。
在Java中使用这些正则表达式时,你通常会首先使用Pattern.compile(String regex)方法编译正则表达式,然后使用matcher(CharSequence input)方法创建一个Matcher对象,最后使用Matcher对象的方法来执行匹配、查找等操作。例如:

String email = "example@example.com";   String emailRegex = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b";   Pattern pattern = Pattern.compile(emailRegex);   Matcher matcher = pattern.matcher(email);   boolean isEmail = matcher.matches(); // 判断是否匹配 

RegexUtils

import java.util.regex.Pattern;  /**  * 正则工具类  *  * @author jjee  */ public class RegexUtils {     /**      * 校验正则表达式是否合法      */     public static boolean checkRegx(String regx) {         try {             Pattern.compile(regx);             return true;         } catch (Exception e) {             return false;         }     }      /**      * 判断是否为整数      * @param str 传入的字符串      * @return 是整数返回true,否则返回false      */     public static boolean isInteger(String str) {          Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");          return pattern.matcher(str).matches();      }      //正则表达式判断字符串是否仅含有数字和字母和中文     public static boolean isLetterDigit(String str) {         String regex = "^[\\u4e00-\\u9fa50-9a-zA-Z]+$";         return str.matches(regex);     }      //正则表达式判断字符串是否仅英文字符     public static boolean isAandZ(String str) {         String regex = "^[a-zA-Z]*";         return str.matches(regex);     }      //正则表达式判断字符串是否仅含有数字和字母     public static boolean isAandZandNum(String str) {         String regex = "^[0-9a-zA-Z]+$";         return str.matches(regex);     }  } 

  1. 1-9 ↩︎

相关内容

热门资讯

查到实测透视挂操作!勇者之心多... 查到实测透视挂操作!勇者之心多功能透视挂软件,勇者之心确实真的是有辅助软件所有人都在同一条线上,像星...
一分钟揭秘透视练习!任丘娱乐多... 一分钟揭秘透视练习!任丘娱乐多功能透视方法,任丘娱乐切实是有辅助方法1)任丘娱乐有没有挂:进一步探索...
揭秘一下辅助器窍要!悦心多功能... 揭秘一下辅助器窍要!悦心多功能辅助器方法,悦心本来是有辅助方法暗藏猫腻,小编详细说明悦心破解器有用吗...
重大通报透视挂讲义!聚旺互娱多... 重大通报透视挂讲义!聚旺互娱多功能透视挂工具,聚旺互娱原来真的有辅助工具1、很好的工具软件,可以解锁...
揭秘真相透视教程书!久盛多功能... 揭秘真相透视教程书!久盛多功能透视app,久盛其实确实有辅助app亲,关键说明,久盛透视脚本安卓赛季...
盘点几款透视法子!兴贝棋牌多功... 盘点几款透视法子!兴贝棋牌多功能透视教程,兴贝棋牌果然存在有辅助教程1.兴贝棋牌 选牌创建新账号,点...
刚刚辅助器办法!欢乐斗牛多功能... 刚刚辅助器办法!欢乐斗牛多功能辅助器工具,欢乐斗牛原来真的有辅助工具1、全新机制【欢乐斗牛ai辅助工...
做出回应透视挂窍要!66红中麻... 做出回应透视挂窍要!66红中麻将多功能透视挂教程,66红中麻将都是确实有辅助教程1、进入到66红中麻...
一分钟了解透视妙招!九九多功能... 一分钟了解透视妙招!九九多功能透视工具,九九总是确实有辅助工具1、完成九九辅助器v3.3的残局,帮助...
2024教程辅助挂手筋!兴贝棋... 2024教程辅助挂手筋!兴贝棋牌多功能辅助挂工具,兴贝棋牌一贯是真的有辅助工具1、用户打开应用后不用...