明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: 1291500406

[经验] 正则表达式详解

    [复制链接]
发表于 2020-11-12 20:42 | 显示全部楼层
绕去绕来的,望而却步,没信心
发表于 2021-7-6 11:12 | 显示全部楼层
厉害了我的哥
发表于 2021-10-6 08:11 | 显示全部楼层
要学的东西太多了。
发表于 2024-6-7 17:21 | 显示全部楼层
; 匹配正则表达式,并打印出所有数字结果: 返回 ("13049.66" "19.574")
(print (try-StrRegExp "S=13049.66 平方米 合19.574亩" "[\\d.]+" nil ""))

; 替换所有数字为 "替换掉" 并打印结果: 返回 "S=替换掉 平方米 合替换掉亩"
(print (try-StrRegExp "S=13049.66 平方米 合19.574亩" "[\\d.]+" t "替换掉"))

; 提取数字序列,并打印结果: 返回 ("1291500406")
(print (try-StrRegExp "我是必强,1994年07月,我的邮箱是1291500406@qq.com" "[1-9][0-9]{4,}" nil ""))

; 提取所有汉字字符,并打印结果: 返回 ("我" "是" "必" "强" "," "年" "月" "," "我的" "邮箱" "是")
(print (try-StrRegExp "我是必强,1994年07月,我的邮箱是1291500406@qq.com" "[\\u4e00-\\u9fa5]+" nil ""))

; 提取所有非ASCII字符,并打印结果: 返回 ("我" "是" "必" "强" "," "年" "月" "," "我" "的" "邮" "箱" "是" ".")
(print (try-StrRegExp "我是必强,1994年07月,我的邮箱是1291500406@qq.com" "[^\\x00-\\xff]+" nil ""))

; 提取包含在中括号中的内容,并打印结果: 返回 ("[十二]")
(print (try-StrRegExp "工艺图[十二]" "(\\[[^\\]]*\\])" nil ""))

; 提取包含在圆括号中的内容,并打印结果: 返回 ("(十二)")
(print (try-StrRegExp "工艺图(十二)" "[\\((][^\\))]+[\\))]" nil ""))



;示例:
; 打印提取的数字,返回:("123" "456" "7890")
(print (try-StrRegExp "我的电话是123-456-7890" "\\d+" nil ""))

; 打印替换后的邮箱地址,返回:"我的邮箱是example@newdomain.com"
(print (try-StrRegExp "我的邮箱是example@domain.com" "@domain.com" T "@newdomain.com"))

; 打印提取的HTML标签内的内容,返回:("这是标题")
(print (try-StrRegExp "<title>这是标题</title>" "<title>(.*?)</title>" nil ""))

; 打印替换空白行后的文本,返回:"这是第一行\n空白行\n这是第三行"
(print (try-StrRegExp "这是第一行\n\n这是第三行" "^\\s*$" T "空癫"))

; 打印提取的中文字符,返回:("世界")
(print (try-StrRegExp "Hello, 世界!" "[\\u4e00-\\u9fa5]+" nil ""))
; 查找所有数字,并打印结果: 返回 '(100)
(print (try-StrRegExp "The price is 100 dollars." "\\d+" nil ""))
; 打印返回:("123" "456" "7890")

; 查找所有单词,并打印结果: 返回 '("World" "Hello")
(print (try-StrRegExp "Hello, World!" "\\w+" nil ""))
; 打印返回:("World" "Hello")

; 替换所有数字为 "#" 并打印结果: 返回 "Order #, Item #."
(print (try-StrRegExp "Order 1234, Item 5678." "\\d+" t "#"))
; 打印返回:"Order #, Item #."

; 提取所有邮箱地址,并打印结果: 返回 '("email@example.com")
(print (try-StrRegExp "Contact me at email@example.com for more info." "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b" nil ""))
; 打印返回:("email@example.com")

; 提取中文字符,并打印结果: 返回:("世界")
(print (try-StrRegExp "Hello, 世界!" "[\\u4e00-\\u9fa5]+" nil ""))
; 打印返回:("世界")
发表于 2024-6-7 17:24 | 显示全部楼层
;try-StrRegExp 是一个使用正则表达式处理字符串的 AutoLISP 函数。它的功能是在给定的字符串中查找与正则表达式模式匹配的所有实例,并根据需要替换这些匹配项。
;
;参数:
;str1: 要搜索的源字符串。
;str2: 正则表达式模式,用于定义搜索的模式。
;bull: 布尔值,如果为 true,则会使用 str3 替换匹配到的字符串。
;str3: 替换字符串,当 bull 为 true 时,将用此字符串替换所有匹配到的字符串。
;返回值:
;在匹配模式下(bull为nil),返回一个列表,包含所有匹配到的子字符串。
;在替换模式下(bull为非nil),返回一个新字符串,其中所有匹配到的子字符串都被str3替换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-20 19:53 , Processed in 0.227287 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表