regex - 新函数中的无效字符范围错误

标签 regex character names

<分区>

我对以下错误消息有疑问

invalid regular expression '([a-Z]*)_(.*)', reason 'Invalid character range'

所以导致错误的代码行是

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

所以如果在函数中为参数 tide 选择 long,则应定义问题的名称....

但是当我输入 function(...,tide="long",..) 时会显示上述错误消息。

最佳答案

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

[a-zA-Z]

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

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

[\]^_`

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

关于regex - 新函数中的无效字符范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966975/

相关文章:

fortran - 如何将 NULL 字符连接到 Fortran 中的字符数组以调用 c 函数?

r - 获得 Y 中 a 在 X 中的元素在 R 中的位置

regex - 在 Kotlin 中查找模式每次出现的位置

特定数字的正则表达式

php - mysql_real_escape_string\\\语法

java - 如何显示密码中的字符

c - ncurses 中奇怪的扩展字符

r - 有没有一种方法或内置的 R 函数可以对列表中重复名称的值求和?

r - 使用重复名称更改 R 向量中的多个元素

python - Azure 路径中日期为字符串的正则表达式