我遇到以下错误消息的问题
无效的正则表达式'([a-Z] *)_(。*)',原因'无效的字符范围'
因此导致错误的代码行是
if(tide=="long") names(problem) <- sub("([a-Z]*)_(.*)","\\2",problem)
因此,如果在函数中为参数潮流选择了long,则应定义问题的名称....
但是当我输入function(...,tide="long",..)
时,会显示上述错误消息。
答案 0 :(得分:5)
您无法使用[a-Z]
,因为字母顺序错误,但无论如何最好使用:
[a-zA-Z]
问题是这些范围基于表格(ASCII或Unicode),但大写字母“Z”位于小写字母“a”之前,因此范围的顺序错误。
使用[A-z]
的另一个解决方案是有效范围,但有字符
[\]^_`
字母“Z”和字母“a”之间的,因此这个范围包括您通常不想匹配的字符。
答案 1 :(得分:0)
您的问题是[a-Z]
您必须写下:[a-z]
或[a-zA-Z]