3

我对以下错误消息有疑问

无效的正则表达式'([aZ]*)_(.*)',原因'无效的字符范围'

所以导致错误的代码行是

if(tide=="long") names(problem) <- sub("([a-Z]*)_(.*)","\\2",problem)

因此,如果函数中的参数潮汐选择了 long,则应定义问题的名称....

但是当我输入function(...,tide="long",..)上面提到的错误信息时会显示。

4

2 回答 2

6

您不能使用[a-Z],因为字母顺序错误,但无论如何最好使用:

[a-zA-Z]

问题是这些范围基于表格(ASCII 或 Unicode),但大写字母“Z”位于小写字母“a”之前,因此范围的顺序错误。

另一种使用的解决方案[A-z]是有效范围,但有字符

[\]^_`

介于字母“Z”和字母“a”之间,因此该范围将包含您通常不想匹配的字符。

于 2012-08-15T09:34:45.320 回答
0

你的问题是这个[a-Z]

你必须写要么:[a-z]要么[a-zA-Z]

于 2012-08-15T09:34:25.010 回答