R:用于指定字符串结尾的正则表达式char是一个字母

Adr*_*ian 3 grep r

    string = c("Hello-", "HelloA", "Helloa")
    grep("Hello$[A-z]", string)
Run Code Online (Sandbox Code Playgroud)

我希望找到字符串的索引,其中单词"Hello"之后的下一个字符是一个字母(不区分大小写).上面的代码不起作用,但我希望grep()返回索引2和3,因为这些单词在"Hello"之后有一个字母

Avi*_*Raj 7

使用正向前瞻

> string = c("Hello-", "HelloA", "Helloa")
> grep('Hello(?=[A-Za-z])', string, perl=T)
[1] 2 3
Run Code Online (Sandbox Code Playgroud)

(?=[A-Za-z])这个积极的前瞻断言,字符串后面的字符Hello必须是一个字母.

要么

> grep('Hello[A-Za-z]', string)
[1] 2 3
Run Code Online (Sandbox Code Playgroud)

$如果字符串后面只有一个字母,请在正则表达式中添加一个Hello.$断言我们到底是谁.

> grep('Hello[A-Za-z]$', string)
[1] 2 3
> grep('Hello(?=[A-Za-z]$)', string, perl=T)
[1] 2 3
Run Code Online (Sandbox Code Playgroud)