gpt4 book ai didi

正则表达式提取网址的一部分

转载 作者:行者123 更新时间:2023-12-01 07:40:14 26 4
gpt4 key购买 nike

我今晚很懒,不想弄清楚这个。我需要一个正则表达式来匹配来自以下输入的“jeremy.miller”和“scottgu”:

http://codebetter.com/blogs/jeremy.miller/archive/2009/08/26/talking-about-storyteller-and-executable-requirements-on-elegant-code.aspx

http://weblogs.asp.net/scottgu/archive/2009/08/25/clean-web-config-files-vs-2010-and-net-4-0-series.aspx

想法?

编辑

Chris Lutz 在满足上述要求方面做得很好。如果这些是输入,因此您无法在正则表达式中使用“存档”怎么办?
 http://codebetter.com/blogs/jeremy.miller/
http://weblogs.asp.net/scottgu/

最佳答案

这会是你要找的吗?

'/([^/]+)/archive/'

在这两种情况下,在“归档”之前捕获片段。根据正则表达式的风格,您需要避开 / s 让它工作。作为替代方案,如果您不想匹配 archive部分,你可以使用前瞻,但我不喜欢前瞻,而且更容易匹配很多并只捕获你需要的部分(在我看来),所以如果你更喜欢使用前瞻来验证下一部分是 archive ,你可以自己写一个。

编辑:当你更新你的问题时,我对你想要什么的想法变得更加模糊。如果你想要一个新的正则表达式来匹配第二种情况,你可以从末尾摘下适当的部分,使用相同的 /条件和以前一样:
'/([^/]+)/$'

如果您特别想要文本 jeremy.millerscottgu ,无论它们出现在 URL 的哪个位置,但仅作为 URL 中的“单词”(即不是 scottgu2),再次尝试使用 /警告:
'/(jeremy\.miller|scottgu)/'

作为第三种选择,如果您想要域名后面的字段,除非该字段是“博客”,否则它会变得很麻烦,尤其是使用 / 时。警告:
'http://[^/]+/(?:blogs/)?([^/]+)/'

这将匹配域名,可选 blogs字段,然后是所需的字段。 (?:)语法是一个非捕获组,这意味着它就像常规括号一样,但不会捕获值,因此捕获的唯一值是您想要的值。 (?:)有不同的风险,具体取决于您特定的正则表达式风格。我不知道你在要求什么语言,但我主要使用 Perl,所以如果你使用 PCRE,这个正则表达式应该几乎可以做到。如果您使用不同的东西,请查看非捕获组。

哇。这是很多关于正则表达式的讨论。我需要闭嘴发帖了。

关于正则表达式提取网址的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com