使用正则表达式更改大小写时出现意外结果
Unexpected results when using regex to change case
我正在尝试使用正则表达式和 stringr
程序包更改字符的大小写,但我得到了一个奇怪的结果。我希望下面的两个表达式给出相同的结果(第一个字符大写),但只有 grep
函数给出预期的结果:
> str_replace("will", "(^\w)", regex("\U\1"))
[1] "1ill"
> gsub("(^\w)", "\U\1", "will", perl = TRUE)
[1] "Will"
相关:
gsub
使用一种 PCRE 正则表达式(注意 PCRE regex does not allow case changing operators \L
/ \l
and \U
/ \u
with \E
, but R extends their functionality like in Boost library 支持这些运算符)。
stringr library uses ICU regex library 并且不支持这些大小写更改运算符,并且未将支持添加到原始库功能中。
我正在尝试使用正则表达式和 stringr
程序包更改字符的大小写,但我得到了一个奇怪的结果。我希望下面的两个表达式给出相同的结果(第一个字符大写),但只有 grep
函数给出预期的结果:
> str_replace("will", "(^\w)", regex("\U\1"))
[1] "1ill"
> gsub("(^\w)", "\U\1", "will", perl = TRUE)
[1] "Will"
相关:
gsub
使用一种 PCRE 正则表达式(注意 PCRE regex does not allow case changing operators \L
/ \l
and \U
/ \u
with \E
, but R extends their functionality like in Boost library 支持这些运算符)。
stringr library uses ICU regex library 并且不支持这些大小写更改运算符,并且未将支持添加到原始库功能中。