如何删除字符串中非斜杠字符后的任何内容?

How to remove anything after a non-slash character in a string?

我遇到的问题很奇怪。假设我有:

 a = "www.XXXXXXX.com"
 b = "www.XXXXXXX.com/laskdfj/=*&9809f/12-613"
 c = "www.XXXX.comllkjldfjlsadjfjldsf"
 d = "http://www.XXXX.CoMmasldfjl"
 e = "www.XXX.us/sdf"
 f = "www.XXX.us0948klsdf"

如果“.com”或“.us”后面的不是斜杠,则将其删除。所以结果会是这样的:

 a = "www.XXXXXXX.com"
 b = "www.XXXXXXX.com/laskdfj/=*&9809f/12-613"
 c = "www.XXXX.com"
 d = "http://www.XXXX.CoM"
 e = "www.XXX.us/sdf"
 f = "www.XXX.us"

正则表达式对我来说是个新手,我读了几篇关于正则表达式的博客,none 其中似乎在谈论如何使用 if 语句来处理我的情况...有什么提示吗?

您可以利用 sub 完成此任务:

sub('(.*\.(?i:com|us))[^/]+', '\1', x)

如果您想要更通用的方法,您可以使用:

sub('(.*\.[[:alpha:]]{2,3})[^/]*', '\1', x)

CodeBunk