我们如何使用正则表达式从网址中提取“tumblr”用户名? 网址可以是
http://tname.tumblr.com/
http://www.tname.tumblr.com
tname.tumblr.com
http://www.tumblr.com/blog/tname
tname.tumblr.com/post/1234567
www.tname.tumblr.com.
我只想打印 tname。我尝试使用正则表达式,但只能执行以 http 或 www 开头的字符串。
谢谢
最佳答案
您的示例是 SQL,而不是 SQLCRL,它旨在允许在 SQL Server 上的存储过程等中使用 .NET 语言。我个人建议不要将正则表达式注入(inject)您的 SQL 查询中,而是使用其中一种 .NET 语言与 SQL 结合来将其提取出来。
我不熟悉在您的上下文中使用 RegExParse
或 RegExReplace
,但以下正则表达式应该成功匹配 tname
(或任何其他字母数字用户名)在所有示例行中,无需进行字符串操作或替换:
[^"\/www\."](?<!w{3})[A-Za-z0-9]*(?=\.tumblr\.com)|(?<=\.tumblr\.com\/blog\/).*
这有点像野兽,但本质上它使用了一些 regex lookarounds仅提取用户名。
以下是匹配的外观(使用 RegexBuddy ):
关于regex - 来自 url 的 tumblr 用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18664562/