作者:木木爱上林 | 来源:互联网 | 2023-01-28 15:27
问题:我正在使用R和stringr,并且使用“或”运算符保存了一个对象并与stringr一起使用时,正则表达式非常长。如何在R中将其拆分为多行,这样就不必在源代码编辑器中一直向右滚动?当我尝试逗号时,只会识别第一行。这个问题的大多数答案都针对其他编程语言(即非R)。
regex_of_sites <- "side|southeast|north|computer|engineer|first|south|pharm|left|southwest|level|second|thirteenth"
Wiktor Strib..
6
由于您将模式与使用ICU regex风格的字符串方法一起使用,因此可以使用(?x)
自由间距(也称为冗长或忽略模式空白)修饰符,在编译模式时,所有未转义的空白都会被忽略,并且有可能添加#
每行未转义后的注释(因此,所有文字都#
必须转义)。
这是一个例子:
> library(stringr)
> regex_of_sites <- "(?x)side # Term 0
+ |southeast # Term 1
+ |north # Term 1
+ |computer # Term 2
+ |engineer
+ |first
+ |south
+ |pharm
+ |left
+ |southwest
+ |level
+ |second
+ |thirteenth"
> str_extract_all("first level", regex_of_sites)
[[1]]
[1] "first" "level"
带有R的基本R regex函数中使用的PCRE模式支持相同的修饰符perl=TRUE
。
1> Wiktor Strib..:
由于您将模式与使用ICU regex风格的字符串方法一起使用,因此可以使用(?x)
自由间距(也称为冗长或忽略模式空白)修饰符,在编译模式时,所有未转义的空白都会被忽略,并且有可能添加#
每行未转义后的注释(因此,所有文字都#
必须转义)。
这是一个例子:
> library(stringr)
> regex_of_sites <- "(?x)side # Term 0
+ |southeast # Term 1
+ |north # Term 1
+ |computer # Term 2
+ |engineer
+ |first
+ |south
+ |pharm
+ |left
+ |southwest
+ |level
+ |second
+ |thirteenth"
> str_extract_all("first level", regex_of_sites)
[[1]]
[1] "first" "level"
带有R的基本R regex函数中使用的PCRE模式支持相同的修饰符perl=TRUE
。