要检查它是否为文本中的URL,如果是,请使用Python使用href标记编辑它 我有两个案例,我被卡住了。
案例1)输入:-这是一个示例文本。其他一些文字。 所需输出:-这是一个示例文本a href=”http://sydney.edu.au/“>其他一些文字。 案例2)输入:-这是一个示例文本。sydney.edu.au/somthing else text. 所需输出:-这是一个示例文本a href=“sydney.edu.au/”>sydney.edu.au/其他一些文本。 我已尝试使用以下代码:要检查它是否为文本中的URL,如果是,请使用Python使用href标记编辑它 我有两个案例,我被卡住了。,python,Python,案例1)输入:-这是一个示例文本。其他一些文字。 所需输出:-这是一个示例文本a href=”http://sydney.edu.au/“>其他一些文字。 案例2)输入:-这是一个示例文本。sydney.edu.au/somthing else text. 所需输出:-这是一个示例文本a href=“sydney.edu.au/”>sydney.edu.au/其他一些文本。 我已尝试使用以下代码: >item=“这是一个示例文本。http://sydney.edu.au/ 其他文字。“ >>进口
>item=“这是一个示例文本。http://sydney.edu.au/ 其他文字。“
>>进口稀土
>>r=re.compile(r“(https?://[^]+))
>>newstr=r.sub(r'',项)
这给了我案例1的输出,但没有案例2的输出。任何人都能找到处理这两种情况的方法。您的url匹配正则表达式似乎无效。你可以检查正则表达式
import re
input = "< p >This is a sample text. sydney.edu.au/ somthing else text.< /p >"
regex = "((?:https?://)?(?:www\.)?[a-zA-Z]+\.[a-z]+[^ ]*)"
re.sub(regex, '<a href=\\1>\\1</a>', input)
如果您只想忽略“https:”,那么您需要添加带括号的“?”,即(https://”)?
否则,它将把https中的“s”作为可选
由于https在正则表达式中提到,但在案例2中不存在,因此在案例2中失败
编辑:
编写正则表达式以匹配所有类型的URL是非常困难的,甚至很难理解
下面的正则表达式很简单,适用于这两种情况
import re
input = "< p >This is a sample text. sydney.edu.au/ somthing else text.< /p >"
regex = "((?:https?://)?(?:www\.)?[a-zA-Z]+\.[a-z]+[^ ]*)"
re.sub(regex, '<a href=\\1>\\1</a>', input)
重新导入
输入=“这是一个示例文本。悉尼.edu.au/somthing else text.”
regex=“((?:https?:/)(?:www\)?[a-zA-Z]+\[a-Z]+[^]*)”
re.sub(正则表达式“”,输入)
<代码> >您想在案例2中创建一个匹配吗?教育领域?有没有关于first.second.tld的?首先,tld?你能为我介绍一下案例2吗?我无法理解您共享的regex链接。我正在寻找一个RE,通过它我可以在案例2中检测URL,即不带“http”/“https”/“www”的URL。@TanveerAlam:我已经更新了答案。不过,如果你不能理解这里提到的reg ex,我会解释。先试试看..!@user2109788:感谢您更新答案。我用我的输入进行了尝试,但是RE也改变了我的标记。下面是一个示例:--