我有一堆字符串,其中一些以字符串结尾..t.
.我试图找到一个匹配这些字符串的正则表达式,但处理完全停止让我头疼!
我试过了
grep('^.+(..t.)$', myStrings)
Run Code Online (Sandbox Code Playgroud)
但这也匹配字符串,如w...gate
.我想我正在处理错误的句号.任何帮助都赞赏.
注意:我在R中使用grep
由于您只是检查字符串的结尾..t.
是否结束,因此您可以^.+
在模式中消除.
.
正则表达式语法中的点是具有特殊含义的字符,它匹配除换行序列之外的任何字符.要匹配文字点或任何其他具有特殊含义的字符,您需要将其转义\\
.
> x <- c('foo..t.', 'w...gate', 'bar..t.foo', 'bar..t.')
> grep('\\.{2}t\\.$', x)
# [1] 1 4
Run Code Online (Sandbox Code Playgroud)
或者将该字符放在字符类中.
> x <- c('foo..t.', 'w...gate', 'bar..t.foo', 'bar..t.')
> grep('[.]{2}t[.]$', x)
# [1] 1 4
Run Code Online (Sandbox Code Playgroud)
注意:我使用范围运算符\\.{2}
匹配两个点而不是两次转义\\.\\.