【发布时间】:2021-06-13 13:30:10
【问题描述】:
我需要在 R 函数 base::ls 和 base::list.files 的 pattern 参数中扩展大括号。例如:
# in terminal
ls
# string1 stringX stringYZ
ls string{1,X}
# string1 stringX
但是
# in R
list.files()
# "string1" "stringX" "stringYZ"
list.files(pattern="string{1,X}")
# error: invalid 'pattern' regular expression
list.files(pattern="string\\{1,X\\}")
# character(0) # i.e. finds nothing
list.files(pattern=glob2rx("string{1,X}"))
# character(0) # i.e. finds nothing
base::ls 也是如此。
非常感谢您的帮助,
克里斯
【问题讨论】:
-
尝试:“string1$|X$”或“string(1|X)$”
-
试试:
list.files(pattern="^string(1|X)$") -
在 Bash 中,
{1,X}表示1或X。因此,您需要string(1|X)或(这里,因为1和X是单个字符)string(?:1|X)或string[1X]