当前位置: 首页 > news >正文

云南安宁做网站的公司皖icp备 网站建设

云南安宁做网站的公司,皖icp备 网站建设,遂宁建设机械网站,成都手机号码销售网站建设正则表达式。 一句话概括 正则表达式(Regular Expression,常简写为 regex 或 regexp)是一种用特定模式字符串来匹配、查找、替换文本的强大工具。 你可以把它想象成一种超级增强版的“CtrlF”查找功能。它不仅能够查找一个固定的词&#xff0…

正则表达式。

一句话概括

正则表达式(Regular Expression,常简写为 regex 或 regexp)是一种用特定模式字符串来匹配、查找、替换文本的强大工具。

你可以把它想象成一种超级增强版的“Ctrl+F”查找功能。它不仅能够查找一个固定的词(比如“hello”),还能定义一个文本模式,用来匹配所有符合这个模式的字符串。

一个生动的比喻

把它比作一个 “通配符”或者“模板”:

• 当你在电脑里搜索文件时,你可能会用 *.jpg 来查找所有的图片文件。这里的 * 就是一个简单的通配符,代表任意字符。

• 正则表达式就是这种思想的超级加强版,它提供了一整套强大而精确的语法,让你能描述极其复杂的文本规则。

它能做什么?

主要有三大功能:

  1. 匹配(Match):判断一个字符串是否符合某个模式。
    ◦ 例如:判断用户输入的邮箱地址格式是否正确。

  2. 查找(Search):在一个长文本中找出所有符合某个模式的片段。
    ◦ 例如:在一篇文章中找出所有的电话号码或日期。

  3. 替换(Replace):将文本中所有符合某个模式的部分替换成其他内容。
    ◦ 例如:将一段文本中所有“TODO”开头的行批量删除,或者将日期格式从 “YYYY-MM-DD” 改为 “MM/DD/YYYY”。

一个简单的例子

假设我们要从一段文本中找出所有手机号码。

中国的手机号码通常是 11 位数字,并且以 1 开头。我们可以用这个正则表达式来匹配它:

/1[3-9]\d{9}/

我们来分解一下这个“模式”:
• 1:表示第一个字符必须是数字 1。

• [3-9]:表示第二个字符可以是 3 到 9 之间的任意一个数字。

• \d:这是一个特殊符号,代表任意一个数字(0-9)。

• {9}:表示前面的 \d 必须连续出现 9 次。

所以,这个模式翻译成白话就是:“以1开头,第二位是3-9,后面跟着任意9个数字”。这就能非常精确地匹配到手机号码。

常用的元字符(构建模式的积木)

正则表达式有一套自己的语法,由一些特殊字符(称为元字符)组成。以下是几个最常用的:

元字符 含义 举例 匹配示例

. 匹配任意单个字符(除了换行符) a.c “abc”, “aac”, “a@c”

\d 匹配一个数字 \d\d “42”, “01”

\w 匹配一个字母、数字或下划线 \w\w “Ab”, “a1”, “_2”

\s 匹配一个空白符(空格、制表符等) a\sb “a b”

[abc] 匹配方括号内的任意一个字符 [aeiou] 匹配任何一个元音字母

[^abc] 匹配除了方括号内字符的任意字符 [^0-9] 匹配任何一个非数字字符

  • 前面的元素出现 0 次或多次 ab*c “ac”, “abc”, “abbc”
  • 前面的元素出现 1 次或多次 ab+c “abc”, “abbc” (不能匹配”ac”)

? 前面的元素出现 0 次或 1 次 colou?r “color”, “colour”

{n} 前面的元素出现恰好 n 次 \d{4} 4位数字,如年份“2023”

^ 匹配字符串的开始位置 ^Hello 匹配以“Hello”开头的字符串

$ 匹配字符串的结束位置 end$ 匹配以“end”结尾的字符串

应用场景

正则表达式无处不在,尤其是在编程和数据处理中:
• 表单验证:验证邮箱、电话、密码强度等。

• 数据抓取(爬虫):从网页源码中提取特定信息(如链接、标题)。

• 文本编辑器(VS Code, Sublime等):进行高级的查找替换。

• 日志分析:从大量日志中筛选出错误信息或特定事件。

• 命令行工具(grep, sed, awk):在Linux/Unix系统中处理文本。

不得不指出,正则表达式在LLM上的使用十分广泛

正则表达式(Regular Expressions)在LLM(大语言模型)的开发和应用中确实有重要应用,但它的角色更像是“辅助工具”而不是核心组件。以下是几个关键的应用场景:

  1. 数据预处理(Data Preprocessing)

LLM训练需要大量高质量的文本数据。正则表达式常用于:
• 清理数据:移除HTML标签、特殊字符、无关的标点等

• 标准化文本:统一日期格式(YYYY-MM-DD)、电话号码、URL等

• 分词(Tokenization)辅助:识别特定模式(如电子邮件、数字等)帮助分词器更好处理
示例:用正则清理文本中的HTML标签
import re
clean_text = re.sub(r’<[^>]+>', ‘’, raw_html_text)

  1. 后处理(Post-processing)

LLM生成的文本可能需要结构化输出,正则表达式可用于:
• 提取信息:从模型输出中抽取日期、金额、关键词等

• 格式校验:确保模型生成的JSON、代码等符合语法
从LLM输出中提取所有日期
dates = re.findall(r’\d{4}-\d{2}-\d{2}', llm_output)

  1. 提示工程(Prompt Engineering)

在构建复杂提示时,正则可以帮助:
• 动态生成提示:从用户输入中提取实体并插入到提示模板中

• 约束输出格式:要求模型按特定格式(如JSON、列表)生成内容,然后用正则验证

  1. 路由和分类(Routing & Classification)

在LLM应用中,正则可以作为轻量级过滤器:
• 意图识别:快速匹配简单用户意图(如"帮我退款"→路由到售后模块)

• 触发特定功能:例如匹配"翻译这句话:"后接文本→调用翻译工具

  1. 安全与合规(Safety & Compliance)

• 过滤敏感信息:用正则掩码电话号码、身份证号等(配合其他技术)

• 检测有害内容:快速匹配已知的不良词汇模式(作为第一道防线)

  1. 工具调用(Function Calling)

当LLM需要调用外部工具/API时,正则可用于:
• 解析参数:从自然语言中提取API所需的参数(如城市名、日期)

• 验证输入:确保参数符合要求(如邮箱格式、数字范围)
从用户查询中提取城市名
user_query = “我想知道北京明天的天气”
city_match = re.search(r’(北京|上海|广州|深圳)', user_query)
if city_match:
city = city_match.group(1)
call_weather_api(city)

为什么正则表达式仍然重要?

尽管LLM能理解自然语言,但正则表达式提供了:
• 精确性:100%匹配特定模式(如电话号码)

• 高效率:比调用LLM更快、更便宜

• 确定性:规则明确,不会产生幻觉

典型工作流:正则 + LLM 协同

现代LLM应用常采用混合架构:

  1. 先用正则处理简单、规则明确的任务
  2. 再用LLM处理需要语义理解的部分
  3. 最后用正则对LLM输出进行格式化和验证

例如客服机器人:
• 用户输入:“我要退款订单号202409171001”

• 正则提取订单号:re.findall(r’订单号(\d+)', input_text)

• LLM生成退款理由:refund_reason = llm.generate(“用户退款原因分析: {input}”)

• 正则验证结果:确保返回格式符合API要求

总结

正则表达式在LLM生态中扮演着数据清洗、模式匹配、格式约束等重要角色,与LLM的能力形成互补。虽然LLM能处理复杂语言任务,但正则表达式在规则明确、需要高效精确处理的场景下仍然是不可或缺的工具。

如何学习和使用?

• 学习:建议从简单的模式开始,理解元字符的含义,多练习。网上有很多交互式学习和测试工具。

• 测试工具:在写复杂的正则时,强烈推荐使用在线测试工具,如 https://regex101.com/ 或 https://regexr.com/。它们可以实时高亮匹配结果,并解释你的正则表达式每一部分的含义,对学习和调试非常有帮助。

总结

正则表达式初看可能像是一堆乱码,但它实际上是一套极其强大且高效的文本处理语言。一旦掌握,它能让你在处理字符串时事半功倍,是程序员和IT从业者的必备技能之一。

http://www.dtcms.com/a/601696.html

相关文章:

  • 做百度移动网站点击电脑有网
  • 如何高效设置机器学习超参数?——借鉴成熟AutoML框架的实践
  • python学习之路(七)
  • 长沙网站公司网站建设wordpress 分享到微信二维码
  • 主流的⼤语⾔模型
  • 03-事务高频面试总结
  • Go语言编译原理解析 | 提升开发效率的实用指南
  • html网站完整代码天元建设集团有限公司成立时间
  • 咨询转化率涨35%,声网AI客服拯救跨境生意
  • 培训系统哪家好?TOP10企业培训系统推荐!
  • 找网站推广做网站的法律
  • 基于Gradient Boosting模型的关键驱动因素分析:Permutation、SHAP与PDP/ALE的组合方法研究
  • lockdep状态相关定义如LOCK_ENABLED_HARDIRQ
  • seo优化网站查询网站流量狂刷器
  • 网页制作门户网站案例joomla 2.5:你的网站建设_使用与管理
  • BUUCTF-Misc
  • DFS-排列数字和n皇后-java实现
  • 3.2 自注意力与多头注意力:并行计算不同特征的秘密武器
  • 宁夏建设教育协会网站如何建立公司邮箱
  • 基于昇腾 配置pytorch环境
  • 武威做网站品牌平价网站建设
  • SpringBoot19-@Qualifier用法
  • 工程公司的会计做账有哪些科目官网seo怎么做
  • C语言:一种编译器?| 深入探讨C语言编译器的工作原理与发展
  • SpringBoot+Vue智慧诊所管理系统
  • 企业网站建设价钱专业的家居行业网站开发
  • 解决Idea 插件Plantuml4idea找不到dot的问题
  • 杭州英文网站建设网站建设项目考察范文
  • 济南建设工程信息网站手机刷网站排名软件
  • docker搭建Elasticsearch+Kafka+Logstash+Filebeat日志分析系统