如何在 Regex 中删除 only (anyword).com?
How to delete only (anyword).com in Regex?
我要匹配以下
My best email gmail.com
email com
email.com
成为
My best email
email com
*nothing*
具体来说,我对 R 使用正则表达式,所以我知道转义某些字符有不同的规则。我是 Regex 的新手,但到目前为止我已经
\ .*(com)
输入相同
My
但是此代码不适用于没有像第三个示例那样的 space 的实例,并且如果该行具有“.com”,则删除该行第一个 space 之后的所有内容"
使用以下解决方案:
x <- c("My best email gmail.com","email com", "email.com", "smail.com text here")
trimws(gsub("\S+\.com\b", "", x))
## => [1] "My best email" "email com" "" "text here"
查看 R 演示。
\S+\.com\b
模式匹配 1+ 个非白色 space 字符后跟文字 .com
后跟单词边界。
trimws
函数将 trim 所有结果字符串(例如,使用 "smail.com text here"
,当 space 将在 smail.com
删除后保留) .
请注意,TRE 正则表达式引擎不支持括号表达式中的 shorthand 字符 类。
我要匹配以下
My best email gmail.com
email com
email.com
成为
My best email
email com
*nothing*
具体来说,我对 R 使用正则表达式,所以我知道转义某些字符有不同的规则。我是 Regex 的新手,但到目前为止我已经
\ .*(com)
输入相同
My
但是此代码不适用于没有像第三个示例那样的 space 的实例,并且如果该行具有“.com”,则删除该行第一个 space 之后的所有内容"
使用以下解决方案:
x <- c("My best email gmail.com","email com", "email.com", "smail.com text here")
trimws(gsub("\S+\.com\b", "", x))
## => [1] "My best email" "email com" "" "text here"
查看 R 演示。
\S+\.com\b
模式匹配 1+ 个非白色 space 字符后跟文字 .com
后跟单词边界。
trimws
函数将 trim 所有结果字符串(例如,使用 "smail.com text here"
,当 space 将在 smail.com
删除后保留) .
请注意,TRE 正则表达式引擎不支持括号表达式中的 shorthand 字符 类。