正则表达式

【cad开发】在lisp中应用正则表达式 一刀屠文-在lisp中应用正则表达式介绍正则表达式,及在cad二次开发软件lisp中的应用 立即下载


/正则表达式:

第一讲 字符:
 "普通字符" : 大部分的字符 包括字母和数字 他们只能匹配他们自己
 "元字符" : 他们可以匹配其他字符

 元字符:
   点元字符 "." : 他表示他可以匹配任意字符
     • c.t 可以匹配cat, cot, cit, 甚至可以匹配 c.t ;但不可以匹配换行符
   反斜杠元字符 "\" : 他可以忽略元字符 使得元字符可以和普通字符一样
     • c\.t 表示 匹配 c.t ; c\\t 表示匹配 c\t ;
     
第二讲 字符类:
 字符类 : 是一组在方括号内的字符, 表示可以匹配其中的任何一个字符;
  例如 c[abc]d 表示匹配 cad 或 cbd 或 ccd  三种字符串
 字符类的范围 : 可以通过短横线表示匹配字母或数字的范围;
  • [b-f] 等价于 [bcdef] , [A-Z] 等价于[ABC...XYZ] , [1-4] 等价于 [1234]
  • [0-9.,]表明匹配一个数字,或者一个全角句号,或者一个逗号
  • [0-9a-fA-F]意味着匹配一个十六进制数
  • [a-zA-Z0-9\-]意味着匹配一个字母、数字或者一个短横线
  注意 不要使用z-A 因为他们之间是有字符存在的 [1-31]代表的是匹配1或者2或者3

第三讲 字符类的反义:
 反义字符: "^" 只可以放在字符类的起始位置 [5^1] 是非法的
  • [^a]表示匹配任何不是“a”的字符
  • [^a-zA-Z0-9]表示匹配任何不是字母也不是数字的字符
  • [\^abc]匹配一个为“^”或者a或者b或者c的字符
  • [^\^]表示匹配任何不为“^”的字符

第四讲 转义字符类:
 转义字符: "\d"  等价于 [0-9]        "\D"  等价于  [^0-9] 
 转义字符: "\w"  等价于 [0-9a-zA-Z]      "\W"  等价于 [^0-9a-zA-Z]
 转义字符: "\s"  匹配 空格, 制表符, 回车, 换行  "\S"  匹配一个非空字符
 转义字符: "?"  表示 {0,1}  例如colou?r 表示匹配 colour 或 color
 转义字符: "*"  表示 {0, }   例如 .* 表示匹配任意内容
 转义字符: "+"  表示 {1, }  例如 \w+ 表示匹配任意由字母数字组成的串

第五讲 重复:
 在字符或者字符集之后 可以使用大括号{}表示重复
  • a{1} 等价于 a
  • a{3} 等价于 aaa
  • a{0}  表示匹配空字符串。从这个正则表达式本身来看,它毫无意义。
     如果你对任何文本执行这样的正则表达式,你可以定位到搜索的起始位置,即使文本为空。
  • a\{2\}表示匹配字符串 “a{2}”
  • 在字符类中,大括号没有特殊含义。[{}]表示匹配一个左边的大括号,或者一个右边的大括号
 重复范围: 这样的表达式优先匹配最长字符
  • x{4,4}与x{4}相同
  • colou{0,1}r表示匹配colour或者color
  • a{3,5}表示匹配aaaaa或者aaaa或者aaa
  • a {1,}表示匹配一个或一个以上的连续字符a
  • .{0,}表示匹配任意内容
 
第六讲 匹配
 非贪婪匹配:
  ".*" 表示匹配双引号 然后是任意长度任意字符 然后是双引号 但是其中可能包括双引号
  所以在结尾加上一个 "?" 表示不在匹配最长串 ".*"? 表示匹配双引号 最短串 双引号;
 选择匹配:
  cat|dot 表示匹配 cat 或者 dot
 
第七讲 分组
 • (red|blue) 表示匹配red或者blue或者是一个空字符串
 • abc()def   等价于 abcdef
 • (red|blue)?  等价于  (red|blue|)
 • \w+(\s+\w+)表示匹配一个或多个由空格分隔的单词

第八讲 分隔符
 分隔符 "\b" 表示匹配一个单词分隔符 在单词和非单词之间有单词分隔符 文本的开头和结尾通常也有
 

//使用方法:

#include <regex>
#include <iostream>
#include <string>

bool is_phone_number_valid( const std::string& phone_number )

{
 const std::regex pattern( "15\\d{9}" );        // 对于转义字符 \d代表[0-9] 第一个\代表程序的转义 第二个代表正则的转义
 return std::regex_match( phone_number, pattern );    // 如果要匹配phone_number4 则应写 15d{9}
}


int main()
{
 std::string phone_number1 = "1234567890";
 std::string phone_number2 = "15030659529";
 std::string phone_number3 = "45618asd59s";
 std::string phone_number4 = "15ddddddddd";

 std::cout << phone_number1 << " : " << ( is_phone_number_valid( phone_number1 ) ? "valid" : "invalid" ) << std::endl;
 std::cout << phone_number2 << " : " << ( is_phone_number_valid( phone_number2 ) ? "valid" : "invalid" ) << std::endl;
 std::cout << phone_number3 << " : " << ( is_phone_number_valid( phone_number3 ) ? "valid" : "invalid" ) << std::endl;
 std::cout << phone_number4 << " : " << ( is_phone_number_valid( phone_number4 ) ? "valid" : "invalid" ) << std::endl;

 return 0;
}


 
 
 
 
 

CAD多行文本去掉控制字符的正则表达式 在使用程序获取CAD多行文字的时候有很多控制字符,这个正则的就是去除这些字符的。 立即下载

相关推荐

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 347

查找替换之正则

在文字的查找替换中,有时候需要一些比较高级的查找,可以通过使用正则表达式输入来实现。 一、怎么设置正则表达式输入 打开查找替换功能(find),或者快捷启动Ctrl+F,点击选项: 输入模式中,选择正则表达式输入,然后确定。 这样就可以进行正则表达式查找了。 2、实用例子 查找文档中,4个数字开头的文本,在查找矿中输入:\d{4}.* 然后点击查找。 如图所示,找到了“2209胶带顺槽” 某...

wayright的专栏 1103

2025年一篇解决Windows11安装医学图像处理工具-FSL(各种问题解决,过程详细,小白轻松安装)

2025年一篇帮你解决FSl安装所有问题,包括环境安装、使用说明、常见问题,过程简单易懂,小白轻松安装。

weixin_52145255的博客 2524

正则表达式的属性和方法

在 CAD 的二次开发中,简单的文字匹配可以用 Lisp 自带的 wcmatch 函数,但是这个函数返回值只有 T 或 NIL。 如果需要返回匹配后的相关字符时,或者稍微复杂一点的文字匹配, wcmatch 就无能为力了。 深入地学习正则表达式的语法还是有些难度的,我用的是偷懒的办法,只写最简单的正则语法,对于复杂的正则语法网上都能搜到。但无论怎样,前提是要弄清楚正则的属性和方法。

yxp 的博客 4990

RseQC实战指南:从安装到RNA-Seq数据质控全流程解析

本文提供了一份详尽的RseQC实战指南,涵盖从安装配置到RNA-Seq数据质控的全流程。文章重点解析了RseQC作为专业质控工具的核心价值,手把手指导如何通过Conda或pip完成安装,并深入讲解了bam_stat.py、geneBody_coverage.py等关键模块的使用方法与结果解读技巧,帮助用户有效评估RNA完整性、文库构建质量及链特异性,确保下游分析的可靠性。

weixin_29200741的博客 201

RuoYi(分离版) 使用代码生成器添加子模块(idea版)

文章目录准备一、使用代码生成器1.数据库2.导入表并生成代码二、导入代码文件1.新建一个模块2.导入zip代码文件3.模块环境配置添加菜单和访问地址总结 准备 前提要把系统启动起来,部分教程可以参考这边文章若依框架RuoYi前后端分离项目导入IDEA及运行启动 但是完全参考这篇文章还是不能把项目启动起来,因为这篇文章没有说明数据库。 我是用的是本地数据库,采用xampp+Navicat的组合来部署和访问数据库。打开Navicat,连接并创建数据库ry-vue并导入数据脚本ry_20191008.sql,q

dream_coke的博客 1万+

不允许输入特殊字符的正则表达式_CAD中输入特殊字符,正负符号会,度数符号会,但这个你不一定会...

在CAD中,很多时候我们需要输入特殊字符,如在給尺寸添加正负号时,我们需要输入"±"号,有时候要修改一个线性尺寸为直径值,我们需要输入直径符号"Ø",为了表示角度数,我们需要输入符号"°",这些符号在CAD中,如何快速输入呢?我们一起来看看。1、输入正负符号假设我们绘制了如图1所示图形,我们需要将尺寸50更改为"50±0.2",我们可以按如下步骤快速实现:图1 原图步骤一:双击尺寸"50",使其为...

weixin_35342111的博客 596

rk3576 点亮 LCD(eDP)

RK3576 处理器集成了对 **eDP (Embedded DisplayPort)** 接口的支持,主要用于驱动嵌入式或笔记本电脑的内置屏幕。支持 **eDP 1.3 版本协议**, 最大可支持 ****4K@120Hz**。

weixin_35723192的博客 354

正则表达式(9):扩展正则表达式

上图中的扩展正则使用了分组符号”( )”,”(com|net)”表示将括号内的内容看做一个整体,而括号内的内容为”com|net”,它表示”com或者net”,所以,”(com|net)$”就表示以com或者net结尾的行。上图中,grep命令使用了”-E”选项,表示grep命令会把”正则表达式”中的符号当成”扩展正则表达式”去理解,而不再使用默认的”基本正则表达式”。5、顶级域名之前必须包含一个”点”,换句话说就是,邮箱必须以”.com”、”.net”、”.org”、”.edu”结尾。

qq_40531442的博客 2171

python中有趣的库 freegames 的详细使用

freegames 是一个包含多个简单 Python 游戏的开源库,适合初学者学习 Python 编程和游戏开发。以下是 freegames 的详细介绍和用法示例。

数据知道的博客 3万+

Midscene.js(1):Chrome 插件实战之基于 AI 驱动 WEB UI 自动化测试「喂饭教程」

Midscene.js 是一款开源的AI驱动UI自动化工具,支持自然语言交互、数据提取、断言验证等多种功能。自然语言交互。本文将以 Midscene.js Chrome 插件为例,带你从零上手,体验如何用最简单的方式实现高效、智能的UI自动化测试。

blues_C的博客 4404

Python正则表达式

正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅python里面可以用,其他的语言也一样适用。正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,常用的有都可以用于匹配字符串。

2301_81704383的博客 1322

C# 与欧姆龙 PLC 实战:通过 Ethernet/IP 协议进行设备控制与监控

本文介绍了如何通过C#和Ethernet/IP协议实现与欧姆龙PLC的通信。Ethernet/IP是基于以太网的工业协议,适用于工业设备间的实时数据交换。文章详细讲解了使用EthernetIPSharp库建立连接、读写数据的步骤,并提供了示例代码。此外,还探讨了实时监控、报警系统等高级功能,为工业自动化控制系统开发提供了实用指导。该方法简化了PLC通信开发,提高了系统可靠性和智能化程度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 811

linux正则表达式,正则表达式分类,元字符,基础正则表达式,扩展正则表达式,正则表达式案例

上文介绍了通配符1,本文介绍、总结和通配符有着诸多共同点的一类符号,即正则表达式(regular expression)。只是通配符的对象是文件、或目录,而后者对象是文本内容。在很多地方都有正则表达式的身影,它的作用是用来匹配指定式样的内容,个人理解为,正则表达式规定了指定式样pattern,能匹配该指定式样的字符或字符串即为内容,内容的来源可以是文件、某个标准输入等,使用正则表达式(regular expression)的目的就是匹配到了该内容。

有人说学习`这个`最好的时间是十年前,有人说最好的时间是现在,众说纷纭... 1821

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

shell 正则表达式详解

什么是正则表达式;为什么使用正则表达式;如何使用正则表达式;基本正则表达式;扩展正则表达式; 包含正则表达式例题。

weixin_48814356的博客 3003

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux正则表达式大全,正则表达式,正则表达式语法大全

正则表达式,正则表达式语法大全正则表达式分为两类:基本正则表达式:BRE扩展正则表达式:ERE基本正则表达式的元字符:字符匹配:.: 匹配任意单个字符;[]: 匹配指定范围内的任意单个字符[^]:匹配指定范围外的任意单个字符[:digit:],[:upper:],[:lower:],[:alpha:],[:alnum:],[:space:],[:punct:]匹配次数:用在要指定次数的字符后面,...

weixin_32955259的博客 2878

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

regex 正则表达式

regex 正则表达式 文章目录regex 正则表达式前言元字符abc 等普通字符| 符号两侧的正则均能匹配. 匹配任意一个字符 '\n'除外^ 匹配字符串开头$ 匹配字符串结尾* 匹配重复0次或多次+ 匹配重复1次或多次? 匹配重复0次或1次{N} 匹配重复指定次数{M,N} 匹配重复指定次数范围[abcd] 字符集匹配[^ ...] 字符集不匹配\d 匹配任意数字字符\D 匹配任意非数字字...

weixin_40118971的博客 6475

【正则表达式】{1} ——正则表达式的语法

参考资料:Python网络爬虫与信息提取(北京理工大学慕课) 正则表达式的语法: 正则表达式语法由字符和操作符构成 正则表达式的常用操作符: 操作符 说明 实例 . 表示任何单个字符 [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符 [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 ...

Giyn 4783

正则表达式总结

每次使用到正则表达式的时候都要去翻书或者去网上查,很麻烦,抽出点时间做一个总结,方便以后用到的时候查阅。一、正则表达式的几个特殊符号1、^和$两个特殊的符号‘^’和’$’。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^ab

lmb55的专栏 2269
上一篇: 大小端与栈方向
下一篇: 类的特性
zhang_yao_wu1993
博客等级 码龄12年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值