企业做网站哪家网站好工信部网站原来是

张小明 2025/12/24 1:52:29
企业做网站哪家网站好,工信部网站原来是,深圳网页设计兴田德润赞扬,沈阳市工伤网站做实一、前言 正则表达式#xff08;Regular Expression#xff0c;简称 Regex#xff09;是一种用于匹配、查找、替换字符串的强大工具#xff0c;广泛应用于数据验证、日志分析、文本处理等场景。无论是前端表单验证、后端数据清洗#xff0c;还是爬虫数据提取#xff0c;…一、前言正则表达式Regular Expression简称 Regex是一种用于匹配、查找、替换字符串的强大工具广泛应用于数据验证、日志分析、文本处理等场景。无论是前端表单验证、后端数据清洗还是爬虫数据提取正则表达式都能大幅提升开发效率。本文将避开复杂的理论推导聚焦实用语法 场景化案例帮助开发者快速掌握正则表达式的核心用法。二、正则表达式基础语法2.1 核心元字符必记元字符作用说明示例.匹配任意单个字符除换行符\na.b 匹配 acb、aab不匹配 abbc*匹配前面的字符 0 次或多次ab* 匹配 a、ab、abb、abbb匹配前面的字符 1 次或多次ab 匹配 ab、abb不匹配 a?匹配前面的字符 0 次或 1 次非贪婪匹配ab? 匹配 a、ab不匹配 abb^匹配字符串开头^abc 匹配 abc123不匹配 xabc$匹配字符串结尾abc$ 匹配 123abc不匹配 abcx[]字符集匹配其中任意一个字符[a-zA-Z] 匹配任意大小写字母[^]否定字符集匹配不在其中的字符[^0-9] 匹配非数字字符()分组将多个字符视为一个整体可捕获结果(ab) 匹配 ab、abab|逻辑或匹配左右任意一个表达式a|b 匹配 a 或 b\转义字符匹配元字符本身a\.b 匹配 a.b不匹配 acb2.2 常用预定义字符集简化书写预定义字符等价写法作用说明\d[0-9]匹配数字\D[^0-9]匹配非数字\w[a-zA-Z0-9_]匹配字母、数字、下划线\W[^a-zA-Z0-9_]匹配非字母、数字、下划线\s[ \t\n\r\f]匹配空白字符空格、制表符、换行符等\S[^ \t\n\r\f]匹配非空白字符2.3 量词指定匹配次数量词作用说明示例{n}匹配前面的字符恰好 n 次a{3} 匹配 aaa不匹配 aa{n,}匹配前面的字符至少 n 次a{2,} 匹配 aa、aaa、aaaa{n,m}匹配前面的字符 n 到 m 次a{2,3} 匹配 aa、aaa不匹配 a三、实战场景正则表达式的核心应用3.1 场景 1数据验证最常用数据验证是正则表达式的经典场景如验证手机号、邮箱、身份证号等确保输入数据格式合法。3.1.1 验证手机号中国大陆规则11 位数字以 13/14/15/17/18/19 开头正则表达式^1[345789]\d{9}$Java 实现import java.util.regex.Pattern;import java.util.regex.Matcher;public class RegexDemo {// 手机号正则表达式private static final String PHONE_REGEX ^1[345789]\\d{9}$;private static final Pattern PHONE_PATTERN Pattern.compile(PHONE_REGEX);public static boolean validatePhone(String phone) {if (phone null || phone.isEmpty()) {return false;}Matcher matcher PHONE_PATTERN.matcher(phone);return matcher.matches();}public static void main(String[] args) {System.out.println(validatePhone(13812345678)); // trueSystem.out.println(validatePhone(12345678901)); // false开头不是13/14等System.out.println(validatePhone(1381234567)); // false不足11位}}Python 实现import redef validate_phone(phone):phone_regex r^1[345789]\d{9}$return re.fullmatch(phone_regex, phone) is not None# 测试print(validate_phone(13812345678)) # Trueprint(validate_phone(12345678901)) # Falseprint(validate_phone(1381234567)) # False3.1.2 验证邮箱规则用户名 域名用户名可包含字母、数字、下划线、点号域名至少包含一个点正则表达式^[a-zA-Z0-9_-][a-zA-Z0-9_-](\.[a-zA-Z0-9_-])$Python 实现def validate_email(email):email_regex r^[a-zA-Z0-9_-][a-zA-Z0-9_-](\.[a-zA-Z0-9_-])$return re.fullmatch(email_regex, email) is not Noneprint(validate_email(test123qq.com)) # Trueprint(validate_email(test.name_123gmail.com)) # Trueprint(validate_email(test.com)) # False域名格式错误3.2 场景 2字符串提取从文本中提取目标信息从复杂文本中提取指定格式的信息如提取日志中的 IP 地址、提取字符串中的数字。3.2.1 提取文本中的所有 IP 地址IPv4IPv4 规则4 组 0-255 的数字以点号分隔需处理 0-255 的范围限制正则表达式\b(?:(?: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]?)\bJava 实现public class RegexExtract {private static final String IP_REGEX \\b(?:(?: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]?)\\b;private static final Pattern IP_PATTERN Pattern.compile(IP_REGEX);public static List extractIp(String text) {List ips new ArrayListMatcher matcher IP_PATTERN.matcher(text);while (matcher.find()) { // 循环查找所有匹配的IPips.add(matcher.group());}return ips;}public static void main(String[] args) {String log 用户登录日志IP192.168.1.1时间2024-05-20IP255.255.255.255时间2024-05-21无效IP256.0.0.1;ListIp(log);System.out.println(ips); // 输出[192.168.1.1, 255.255.255.255]}}3.2.2 提取字符串中的所有数字包括整数和小数正则表达式-?\d(?:\.\d)?-?匹配负号\d匹配整数部分(?:\.\d)?匹配小数部分Python 实现def extract_numbers(text):number_regex r-?\d(?:\.\d)?return re.findall(number_regex, text)text 商品价格99元折扣价89.9元库存-10缺货折扣率0.85numbers extract_numbers(text)print(numbers) # 输出[99, 89.9, -10, 0.85]3.3 场景 3字符串替换批量修改文本批量替换文本中的指定内容如替换特殊字符、格式化日期、脱敏手机号。3.3.1 手机号脱敏中间 4 位替换为 *需求将手机号13812345678替换为138****5678正则表达式(\d{3})\d{4}(\d{4})分组捕获前 3 位和后 4 位Java 实现public class RegexReplace {public static String maskPhone(String phone) {String phoneRegex (\\d{3})\\d{4}(\\d{4});// 替换为$1****$2$1表示第一个分组$2表示第二个分组return phone.replaceAll(phoneRegex, $1****$2);}public static void main(String[] args) {System.out.println(maskPhone(13812345678)); // 输出138****5678}}3.3.2 清除文本中的所有空白字符正则表达式\s匹配一个或多个空白字符Python 实现def remove_whitespace(text):return re.sub(r\s, , text)text 正则表达式 实战 指南 \n 2024-05-20 result remove_whitespace(text)print(result) # 输出正则表达式实战指南2024-05-20四、进阶技巧提升正则表达式效率4.1 分组与捕获捕获组用()包裹的表达式会被捕获可通过$nJava或\nPython引用捕获结果如 3.3.1 中的手机号脱敏非捕获组用(?:)包裹的表达式仅用于分组不捕获结果可提升性能如 IP 提取中的(?:25[0-5]...)。4.2 贪婪匹配与非贪婪匹配贪婪匹配默认尽可能匹配更多字符如a.*b匹配aabbaab中的aabbaab非贪婪匹配在量词后加?尽可能匹配更少字符如a.*?b匹配aabbaab中的aab和aab。示例Pythontext aaabbbccc# 贪婪匹配.* 匹配所有字符直到最后一个cgreedy re.findall(ra.*c, text)print(greedy) # 输出[aaabbbccc]# 非贪婪匹配.*? 匹配到第一个c为止non_greedy re.findall(ra.*?c, text)print(non_greedy) # 输出[aaabbbccc]不实际输出[aaabbbccc]不对修正示例text aaacbbbcgreedy re.findall(ra.*c, text) # 匹配整个字符串[aaacbbbc]non_greedy re.findall(ra.*?c, text) # 匹配到第一个c[aaac]4.3 正向预查与反向预查零宽断言零宽断言仅匹配位置不消耗字符常用于 “匹配某个字符前后的内容”。断言类型语法作用说明示例正向先行断言(?exp)匹配 exp 前面的位置a(?b) 匹配ab中的a不匹配ac中的a正向负向断言(?!exp)匹配不满足 exp 前面的位置a(?!b) 匹配ac中的a不匹配ab中的a反向先行断言(?exp)匹配 exp 后面的位置(? 匹配ab中的b不匹配cb中的b反向负向断言(?!exp)匹配不满足 exp 后面的位置(?b 匹配cb中的b不匹配ab中的b示例匹配密码中包含至少 1 个大写字母、1 个小写字母和 1 个数字正则表达式^(?.*[A-Z])(?.*[a-z])(?.*\d).{8,16}$解析(?.*[A-Z])确保字符串中存在大写字母(?.*[a-z])确保存在小写字母(?.*\d)确保存在数字.{8,16}匹配 8-16 位任意字符。五、避坑指南转义字符问题Java 中\需要双重转义如\d需写为\\dPython 中直接写\d即可性能问题复杂正则表达式如嵌套量词.*.*可能导致回溯爆炸尽量简化表达式如用\d代替\d*\d边界匹配验证全字符串时务必加^和$如手机号验证否则138123456789会被误判为合法范围匹配[0-9a-zA-Z]不能写成[a-z0-9A-Z]顺序不影响但[a-Z]是错误的大写字母 ASCII 码小于小写字母。六、常用工具推荐在线正则表达式测试工具Regex101支持语法高亮、匹配结果实时预览可选择语言正则表达式生成器Regex Generator输入示例文本自动生成正则表达式IDE 集成工具IntelliJ IDEA、VS Code 均内置正则表达式测试功能快捷键 CtrlF开启 Regex 模式。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

长沙网页设计培训找沙大计教育预约网址厦门seo屈兴东

轻量级科研利器:Qwen3-Reranker-0.6B重构文献检索范式 【免费下载链接】Qwen3-Reranker-0.6B 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Reranker-0.6B 在人工智能驱动科研创新的浪潮中,高效精准的文献检索系统已成为科研工作者的…

张小明 2025/12/22 7:53:18 网站建设

义乌购物网站建设多少钱网络建站网网络推广

在如今的AI落地浪潮中,很多企业都有过这样的经历:耗费巨资部署了千亿参数的大语言模型,演示会上它对答如流,仿佛拥有无所不知的智慧,让所有人都对“AI赋能业务”充满期待。但当模型真正投入生产环境,现实的…

张小明 2025/12/23 3:06:37 网站建设

建设部监理协会网站学电脑哪个专业最吃香

UVM TLM 层次化通信:数据如何在组件层级间"旅行" 你好!今天我们要学习UVM TLM通信中最核心也最容易混淆的部分:如何在多层级的测试平台中传递数据。这就像在公司里,一份文件要从一个部门的小组A,传递到另一个…

张小明 2025/12/23 8:43:00 网站建设

炫酷的网站开发网站美工设计

Wan2.2-T2V-A14B模型在银行网点服务介绍视频中的应用实例技术背景与行业挑战 在金融行业的数字化浪潮中,客户对服务透明度和体验感的要求越来越高。走进一家银行网点,人们不再满足于“这是我们的业务流程”这样干巴巴的说明——他们希望看到清晰、直观、…

张小明 2025/12/23 21:38:29 网站建设

建站展示做本地生活圈网站好吗

VideoSrt终极教程:5分钟掌握视频字幕自动生成技巧 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为繁琐的视频字幕制…

张小明 2025/12/23 7:22:14 网站建设

怎么推广一个网站建设网站前的市场分析主要包括哪些内容

在学业的冲刺阶段,毕业论文往往是横亘在每一位学子面前的一座大山。从选题的迷茫、开题报告的繁琐,到文献综述的浩瀚、研究方法的抉择,再到最终成文的字斟句酌,每一个环节都可能让人焦头烂额。时间紧、任务重、压力大,…

张小明 2025/12/24 0:56:12 网站建设