SAS_正则表达式 字符意义

正则表达式必知必会
正则表达式用处:搜索与替换
简单的开始:
1.匹配单个字符:
.匹配任何一个字符(除去换行符)
\加上一个特殊字符:如\\,\d,\w,
2.匹配一组字符:
[]不匹配任何字符,自用来定义一个字符集合;如[ab]:必须匹配a或b,可用来处理大小写问题[Aa],当然也可以用\i(SAS里面的);[0-9]匹配0到9的数字,[A-Z]匹配A到Z的英文字母;[A-Za-z0-9]表示A-Z和a-z和0-9;[^0-9]表示不匹配0-9的任意数字;若要匹配[]本身,需要反斜杠\[ \]
注:-连字符是特殊的元字符,但只能用在[]之间,在[]之外只能与-匹配,因此-不需要特殊匹配。
3.使用元字符:
元字符不用做元字符时,必须\转意,如\[、 \\
元字符分为两种:(1)匹配文本比如.(2)匹配正则表达式的语法要求的如:[]
匹配空白字符:\n:换行符;\r回车符;\t制表符[Tab键];在Window操作系统中需要\r\n\r\n来匹配两条记录中的空白行,在linux\Unix中是\n\n即可
匹配数字:\b任何一个数字字符相当于[0-9];\D任何一个非数字字符相当于[^0-9]
\w任何一个字母数字字符或者下划线相当于[A-Za-z0-9_];\W任何一个非字母数字字符或者下划线相当于[^A-Za-z0-9_]
匹配空白字符:\s任何一个空白;\S任何一个非空白字符
匹配十六进制:\0
匹配八进制:\0开头
4.重复匹配
+匹配一个或多个字符
*匹配零个或多个字符
?匹配零个或一个字符
{}匹配的重复次数 如\d{0,3}:0,1,2或3个数字;\d{3,}至少重复3次及以上的数字字符
注:* +都是贪婪型字符,匹配的结果是多多益善而不是适可而止,尽可能从文本的开头匹配到结尾,有时将多个匹配结果当成一个
但*? +? {n,}?是懒惰性表示方法,写法简单,找到一个匹配的即停止(这里容易误解,见P49页)
5.位置匹配
\b单词边界:如:the cat scatterted....,匹配cat:\bcat\b,这里的\b是匹配这样一个位置,位于一个能用来构成单词的字符和一个不能用来构成单词的字符;
\D不匹配单词的边界
^匹配字符串的开头位置

7.子表达式
()是元字符,将子表达式括起来
简化重复表达:(\d{1,3}\.){3}
避免误解:19|20\d{2} 与(19|20)\d{2}意义是不同的;因为|将左右两边当成完整的两部分
子表达式的嵌套
8.回溯引用:前后一致匹配
回溯连续匹配:
如:this is is a cat;
匹配:[ ]+(\w+)[]+\1
这里的\1是模式里的第一个表达式,\2表示模式里面的第二个表达式,上述将匹配同一个单词连续两次重复出现;
注:回溯引用只能引用模式里面的子表达式,用()括起来的;

转载于:https://www.cnblogs.com/Anni-love-Ferris-wheel/p/7414295.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAS 中,正则表达式可以通过 `PRX*` 函数来使用。下面是一些常用的正则表达式函数及其用法说明: 1. `PRXPARSE` 函数:用于将正则表达式模式编译为一个正则表达式对象(pattern object)。语法如下: ``` pattern_object = prxparse(pattern); ``` 其中,`pattern` 是一个字符串,表示要编译的正则表达式模式。 2. `PRXMATCH` 函数:用于检查字符串是否与正则表达式模式匹配。语法如下: ``` match = prxmatch(pattern_object, string); ``` 其中,`pattern_object` 是由 `PRXPARSE` 函数返回的正则表达式对象,`string` 是要匹配的字符串。如果匹配成功,返回非零值;否则返回 0。 3. `PRXPOSN` 函数:用于获取最后一次匹配的位置信息。语法如下: ``` position = prxposn(pattern_object, occurrence, buffer, length); ``` 其中,`pattern_object` 是由 `PRXPARSE` 函数返回的正则表达式对象,`occurrence` 是指定要获取位置的匹配次数,`buffer` 是包含字符串的 SAS 变量,`length` 是 buffer 的长度。返回值是最后一次匹配的结束位置。 4. `PRXSUBSTR` 函数:用于提取匹配正则表达式模式的子字符串。语法如下: ``` substr = prxsubstr(pattern_object, occurrence, buffer); ``` 其中,`pattern_object` 是由 `PRXPARSE` 函数返回的正则表达式对象,`occurrence` 是指定要提取的匹配次数,`buffer` 是包含字符串的 SAS 变量。返回值是匹配的子字符串。 5. `PRXCHANGE` 函数:用于将字符串中匹配正则表达式模式的部分替换为指定的字符串。语法如下: ``` new_string = prxchange(pattern_object, occurrence, buffer, replacement); ``` 其中,`pattern_object` 是由 `PRXPARSE` 函数返回的正则表达式对象,`occurrence` 是指定要替换的匹配次数,`buffer` 是包含字符串的 SAS 变量,`replacement` 是要替换为的字符串。返回值是替换后的新字符串。 这些函数提供了基本的正则表达式功能,你可以根据具体的需求使用它们来处理字符串。请注意,在使用正则表达式时,要特别注意模式的编写和匹配的规则,以确保得到正确的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值