Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要检查它是否为文本中的URL,如果是,请使用Python使用href标记编辑它 我有两个案例,我被卡住了。_Python - Fatal编程技术网

要检查它是否为文本中的URL,如果是,请使用Python使用href标记编辑它 我有两个案例,我被卡住了。

要检查它是否为文本中的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/ 其他文字。“ >>进口

案例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/ 其他文字。

“ >>进口稀土 >>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也改变了我的标记。下面是一个示例:--