如何使用正则表达式仅在特定字符串后显示字符

时间:2018-06-05 21:24:01

标签: regex

我的字符串看起来像这样:

http://mywebsite.com/1234
http://mywebsite.com/foo
http://mywebsite.com/bar
http://google.com

我想使用正则表达式只抓取前面带有“http://mywebsite.com/”的字符串,并且只包含之后的字母(不是数字)。所以在我的例子中,以下字符串是有效的:

http://mywebsite.com/foo
http://mywebsite.com/bar

到目前为止,我有一个看起来像这样的正则表达式:

"http://mywebsite.com/[a-zA-Z]+"

但我没有得到任何结果

1 个答案:

答案 0 :(得分:1)

你只需要使用反斜杠转义斜杠和点,但你也应该在正则表达式的末尾使用$以确保匹配后没有数字(或其他不允许的字符):

http:\/\/mywebsite\.com\/[a-zA-Z]+$

这确实假设你让每个字符串在输入中占据它自己的行,或者在你测试的每个字符串之后没有任何其他信息。

Try it out here

To"抓住"最后一次斜杠后面的字符串,使用一个捕获组:

http:\/\/mywebsite\.com\/([a-zA-Z]+)$

Try it out here

然后使用您的编程语言,您可以访问每个匹配项中存储在该组中的值。或者,如果您的正则表达式支持您可以使用的\K序列:

http:\/\/mywebsite\.com\/\K[a-zA-Z]+$

完全避免捕获组。

Try it out here