【发布时间】:2018-05-14 23:00:30
【问题描述】:
我到处寻找一些regex,它们会导致R 忽略正则表达式字符串中的下一个字符。
例如,给定myvector:
myvector <- c("abcdef", "ghijkl", "mnopqrs")
还有一个regex 字符串:
regexstring <- "[a-z]{3}XXXXXXXXX "
其中包含一些未知字符 XXXXXXXXX,我想告诉R 忽略正则表达式字符串本身的最后一个空格。
运行以下命令后,
regexstring <- "[a-z]{3} "
sub(regexstring, " ", myvector)
给予,
"abcdef" "ghijkl" "mnopqrs"
因为任何字符串中都没有空格。但希望在包含 XXXXXXXXX 之后,我会得到与运行时相同的输出
regexstring <- "[a-z]{3}"
sub(regexstring, " ", myvector)
这是:
" def" " jkl" " pqrs"
我无法擦除最后的空间或使用 trimws() 等,而且我看不出有什么方法可以让 R 忽略最后的空间。有没有 XXXXXXXXX 这样做的?
【问题讨论】:
-
trimws(regexstring, which="right")? -
就像我说的,我不能擦除最后的空间。
-
我不能在最后一个空格后面放任何东西。我有一个正则表达式向量,并且所有这些都附加了一个空格。因此,如果可能的话,我需要在正则表达式的第一部分中执行此操作。
-
您可以添加
(?x)(在XXXs所在的地方)并确保通过perl=TRUE -
regexstring