string = c("Hello-", "HelloA", "Helloa")
grep("Hello$[A-z]", string)
Run Code Online (Sandbox Code Playgroud)
我希望找到字符串的索引,其中单词"Hello"之后的下一个字符是一个字母(不区分大小写).上面的代码不起作用,但我希望grep()返回索引2和3,因为这些单词在"Hello"之后有一个字母
使用正向前瞻
> 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)