【问题标题】:How can I use regex to only show characters after a specific string如何使用正则表达式仅显示特定字符​​串之后的字符
【发布时间】:2018-11-15 11:24:07
【问题描述】:

我的字符串可能如下所示:

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]+"

但我没有得到任何结果

【问题讨论】:

  • 请标记您使用的语言
  • 您可能需要转义斜线:使用\/ 而不是/
  • 除了@GalAbra 的cmets,根据您所说的“抓取”,您可能需要一个捕获组,在正则表达式中使用();当然,将它们放在哪里取决于您想要“抓取”多少所需的字符串
  • 您使用什么工具/语言? JavaScript?那就看this post

标签: regex


【解决方案1】:

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

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

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

Try it out here


要“抓取”最后一个斜杠后的字符串,请使用捕获组:

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

Try it out here

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

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

完全避免捕获组。

Try it out here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2019-11-25
    • 2023-01-11
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多