R包含句点的字符串的正则表达式

Joe*_*Joe 5 regex r

我有一堆字符串,其中一些以字符串结尾..t..我试图找到一个匹配这些字符串的正则表达式,但处理完全停止让我头疼!

我试过了

grep('^.+(..t.)$', myStrings)
Run Code Online (Sandbox Code Playgroud)

但这也匹配字符串,如w...gate.我想我正在处理错误的句号.任何帮助都赞赏.

注意:我在R中使用grep

hwn*_*wnd 9

由于您只是检查字符串的结尾..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}匹配两个点而不是两次转义\\.\\.