使用正则表达式获取 url 地址
Get url address with regex
我正在尝试从此字符串中获取以下 url 地址 www.salesforce.co.uk:
'raewaferwww.salesforce.co.ukhrewadfea'
.
出于这个原因,我创建了以下正则表达式:
https?://www.|https?|www.)([A-Za-z\d._~:/?#\[\]@!$&\'()*+,;=-]|%[0-9a-fA-F]{2})+[.][A-Za-z]{2,3}
返回结果为:
www.salesforce.co.ukh
我想知道的是如何删除 'h' 字符并拥有适当的
www.salesforce.co.uk
url 地址?
请问如何实现?
如 Washington Guedes 所述,{2,3}
将匹配 2 个或 3 个字符。
更改为 {2}
只会给你 www.salesforce.co.uk
但是:如果您的目的是匹配其他以 3 个字母的 TLD 结尾的 url,切换到 {2}
将无法满足您的整体需求。
为了从字符串中匹配两个字母的 TLD(.uk、.to 等)和 三个字母的 TLD(.com、.net 等)的字母,您需要专门匹配 TLD,并在 2 个字母之前检查 3 个字母(否则 .com
将匹配为 .co
)
我正在尝试从此字符串中获取以下 url 地址 www.salesforce.co.uk:
'raewaferwww.salesforce.co.ukhrewadfea'
.
出于这个原因,我创建了以下正则表达式:
https?://www.|https?|www.)([A-Za-z\d._~:/?#\[\]@!$&\'()*+,;=-]|%[0-9a-fA-F]{2})+[.][A-Za-z]{2,3}
返回结果为:
www.salesforce.co.ukh
我想知道的是如何删除 'h' 字符并拥有适当的
www.salesforce.co.uk
url 地址?
请问如何实现?
如 Washington Guedes 所述,{2,3}
将匹配 2 个或 3 个字符。
更改为 {2}
只会给你 www.salesforce.co.uk
但是:如果您的目的是匹配其他以 3 个字母的 TLD 结尾的 url,切换到 {2}
将无法满足您的整体需求。
为了从字符串中匹配两个字母的 TLD(.uk、.to 等)和 三个字母的 TLD(.com、.net 等)的字母,您需要专门匹配 TLD,并在 2 个字母之前检查 3 个字母(否则 .com
将匹配为 .co
)