R语言正则表达式语法
在之前文章stringr包里面提到需要用到正则表达式的去处理一些杂乱数据,尤其是在处理从网络爬取的数据,而非自由平台的数据时候,数据是非常脏的。
R语言可运用正则表达式的函数
1、有基础包自带函数grep, grepl, regexpr, gregexpr,regexec,sub,gsub 这些函数的参数都一样
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, useBytes = FALSE, invert = FALSE)
常用参数说明
pattern:正则表达式或者固定字符串
x:需要处理的数据向量/文本
ignore.case:是否区分大小写
perl:是否用perl兼容的参数
invert:是否返回不匹配的值
2、stringr包中的匹配、提取函数(如:str_replace、str_replace_all、str_detect、str_match、str_extract)同样可以根据正则表达式语法构造所需要的通配符。
正则表达式基本语法:
在R正则表达式里预定义的字符类选集
|
[:digit:]
|
数字:0-9
|
[:punct:]
|
标点符号
|
[:lower:]
|
小写字母:a-z
|
[:graph:]
|
图形字符:[:alnum:]、[:punct:]
|
[:upper:]
|
大写字母:A-Z
|
[:blank:]
|
空格字符:空格和制表
|
[:alpha:]
|
字母字符:a-zA-Z
|
[:space:]
|
空字符:空格、制表、换行和其他空字符
|
[:alnum:]
|
数字和字母字符
|
[:print:]
|
可打印字符:[:alnum:]、[:punct:]、[:space:]
|
R正则表达式里的量化符
|
?
|
前面的元素是可选的,并且最多匹配一次
|
*?
|
重复任意次,但尽可能少重复
|
*
|
前面的元素会被匹配0次或者多次
|
+?
|
重复1次或更多次,但尽可能少重复
|
+
|
前面的元素会被匹配1次或者多次
|
??
|
重复0次或1次,但尽可能少重复
|
{n}
|
前面的元素会正好被匹配n次
|
{n,m}?
|
重复n到m次,但尽可能少重复
|
{n,}
|
前面的元素会被匹配n次或者多于n次
|
{n,}?
|
重复n次以上,但尽可能少重复
|
{n,m}
|
前面的元素至少会被匹配n次,但不超过m次
|
|
|
R中部分含有特殊含义的符号
|
\w
|
单词字符:[[:alnum:]]
|
\W
|
非单词字符:^[[:alnum:]]
|
\s
|
空字符:[[:blank:]]
|
\S
|
非空字符:^[[:blank:]]
|
\d
|
数字:[[:digit:]]
|
\D
|
非数字:^[[:digit:]]
|
\b
|
单词的边界
|
\B
|
非单词的边界
|
\<
|
单词的起始
|
\>
|
单词的结尾
|
.
|
匹配除换行符以外的任意字符
|
$
|
匹配字符串的结束
|
^
|
匹配字符串的开始
|
\
|
转义字符,用于查找元字符本身,如:.,*
|
name|loc
|
匹配 name 或 loc
|
|
|
[nameloct]
|
匹配所包含的任意一个字符
|
|
|
[^nameloct]
|
匹配未包含的任意字符
|
|
|
更新中,请谅解》》》》》》》》》》》》》》》》》》》》》》》》》
R语言正则表达式语法在之前文章stringr包里面提到需要用到正则表达式的去处理一些杂乱数据,尤其是在处理从网络爬取的数据,而非自由平台的数据时候,数据是非常脏的。R语言可运用正则表达式的函数 1、有基础包自带函数grep, grepl, regexpr, gregexpr,regexec,sub,gsub这些函数的参数都一样grep(pattern, x, ignore....
R语言
如何提取[]
中
间的字符串?(
R语言
字符串提取)
x &amp;amp;lt;- “[Z序号]&amp;amp;gt;5 &amp;amp;amp;&amp;amp;amp; [燃油温度]&amp;amp;lt;5 &amp;amp;amp;&amp;amp;amp; [PM开关]==1”
R
实现
:通过R
中
的字符串提取函数
实现
该
功能
,涉及
正则表达式
,’[]'的perl
正则表达式
为:&
string str = richTextBox1.Text;//获取输入框内容
//正则提取所有数字
MatchCollection result = Regex.Matches(str, @"[\-\d\.]+");
richTextBox3.AppendText("使用
正则表达式
提取数字\r\n
正则表达式
,是根据字符串规律按一定法则,简洁表达一组字符串的表达式。
正则表达式
通常就是从貌似无规律的字符串
中
发现规律性,进而概括性地表达它们所共有的规律或模式,以方便地操作处理它们,这是真正的化繁为简,以简御繁的典范。
几乎所有的高级编程语言都支持
正则表达式
,
正则表达式
广泛应用于文本挖掘、数据预处理,例如:
检查文本
中
是否含有指定的特征词
找出文本
中
匹配特征词的位置
从文本
中
提取信息
正则表达式
包括:只能匹配自身的普通字符(如英文字母、数字、标点等)和被转义了的特殊字符(称为‘‘元字
Linux
正则表达式
是一种用来匹配文本内容的表达式,它可以方便地在Linux系统
中
进行文本处理和搜索。下面是一份Linux
正则表达式
大全,包括常用的
正则表达式
语法
和示例:
1. 字符匹配
正则表达式
语法
:字符
* 匹配单个字符:
a 匹配'a'字符
* 匹配多个字符:
[abc] 匹配'a'、'b'或'c'字符
[^abc] 匹配除'a'、'b'、'c'以外的任意字符
[a-z] 匹配小写字母a到z
中
的任意一个字符
[A-Z] 匹配大写字母A到Z
中
的任意一个字符
[0-9] 匹配数字0到9
中
的任意一个字符
2. 重复匹配
正则表达式
语法
:字符+、字符*、字符?
* 匹配多个字符:
a+ 匹配一个或多个'a'字符
a* 匹配零个或多个'a'字符
a? 匹配零个或一个'a'字符
3. 边界匹配
正则表达式
语法
:^、$
* 匹配行首和行尾:
^a 匹配以'a'字符开头的行
a$ 匹配以'a'字符结尾的行
4. 逻辑匹配
正则表达式
语法
:字符1|字符2
* 匹配两种字符
中
的任意一种:
a|b 匹配'a'或'b'字符
5. 分组匹配
正则表达式
语法
:(字符)
* 匹配分组
中
的字符:
(a) 匹配'a'字符
6. 转义字符
正则表达式
语法
:\字符
* 匹配特殊字符:
\. 匹配'.'字符
\* 匹配'*'字符
\+ 匹配'+'字符
\? 匹配'?'字符
\( 匹配'('字符
\) 匹配')'字符
以上是Linux
正则表达式
的常用
语法
和示例,可以根据实际需求进行学习和使用。