gpt4 book ai didi

c# - 正则表达式 c# 可选组 - 应该贪婪吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:56 25 4
gpt4 key购买 nike

有正则表达式~像这样:

blablabla.+?(?:<a href="(http://.+?)" target="_blank">)?

如果我找到一个 URL,我想捕获它...找到东西但我没有得到链接(捕获总是空的)。现在,如果我像这样删除末尾的问号

blablabla.+?(?:<a href="(http://.+?)" target="_blank">)

这只会匹配末尾有链接的内容...现在是凌晨 2 点 40 分...我没有任何想法...

--编辑--

示例输入:

blablabla asd 1234t535 <a href="http://google.com" target="_blank">

预期输出:

match 0:

    group 1: <a href="http://google.com" target="_blank">
group 2: http://google.com`

我只想要“http://google.com”或“”

最佳答案

你在做全串匹配吗?如果是这样,请尝试将 .* 添加到第一个正则表达式的末尾并查看它匹配的内容。第一个正则表达式的问题是它可以匹配 blablabla 之后的任何内容,因为 .+? (导致空捕获),但括号内的部分仍然不会匹配 a 标签,除非它在字符串的末尾。顺便说一句,看看你的预期输出,捕获 1 将是 URL;由于 ?: 开头,整个 HTML 标记周围的括号是非捕获的。

关于c# - 正则表达式 c# 可选组 - 应该贪婪吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214940/

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