gpt4 book ai didi

r - 分解R中的长正则表达式

转载 作者:行者123 更新时间:2023-12-01 08:23:35 24 4
gpt4 key购买 nike

问题:我正在使用 R 和 stringr,并且我有一个非常长的正则表达式,它使用“或”运算符保存到对象并与 stringr 一起使用。如何在 R 中将其拆分为多行,这样我就不必在源代码编辑器中一直向右滚动?当我尝试使用逗号时,只能识别第一行。这个问题的大多数答案都是针对其他编程语言(即不是 R)。

regex_of_sites <- "side|southeast|north|computer|engineer|first|south|pharm|left|southwest|level|second|thirteenth"

最佳答案

由于您将模式与使用 ICU 正则表达式风格的 stringr 方法一起使用,您可以使用 (?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"

在带有 perl=TRUE 的基本 R 正则表达式函数中使用的 PCRE 模式支持相同的修饰符。

关于r - 分解R中的长正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com