鱼C论坛

 找回密码
 立即注册
查看: 3643|回复: 8

正则表达式匹配 |

[复制链接]
发表于 2022-10-26 11:40:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 我不是第一个 于 2022-10-26 12:27 编辑

搞定了。谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-26 12:16:21 | 显示全部楼层
用.replace  可以替换掉,但是过程太过于复杂。

你要替换成什么?怎么个复杂法

怎么用正则替换掉  | 。

你要替换成什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-26 12:17:32 | 显示全部楼层
hrpzcf 发表于 2022-10-26 12:16
你要替换成什么?怎么个复杂法

开始没说清楚,补充了问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 12:28:21 | 显示全部楼层
我不是第一个 发表于 2022-10-26 12:17
开始没说清楚,补充了问题。

我感觉依然没有说清楚
>>> import re
>>> content = '<p>  <img alt="典藏1223 | 怎么匹配竖杠" data-src="V12iGcU9slSN/2HhWxme4Bt14Glc5HYpd/12tmtXHKlQO71fYE+kzr9SxWGHE4BhnjrpuwQm3NA4zjpQFgOsBbVd23Swf12CQETDIxk="/></p>'
>>> re.sub(r'\|', '', content)
'<p>  <img alt="典藏1223  怎么匹配竖杠" data-src="V12iGcU9slSN/2HhWxme4Bt14Glc5HYpd/12tmtXHKlQO71fYE+kzr9SxWGHE4BhnjrpuwQm3NA4zjpQFgOsBbVd23Swf12CQETDIxk="/></p>'
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 12:29:55 | 显示全部楼层
我不是第一个 发表于 2022-10-26 12:17
开始没说清楚,补充了问题。

t=content0.replace("|","")    这个不行 吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-26 12:41:40 | 显示全部楼层
本帖最后由 我不是第一个 于 2022-10-26 12:47 编辑
人造人 发表于 2022-10-26 12:28
我感觉依然没有说清楚


import re
content0 = '<p>  <img alt="典藏1223 | 怎么匹配竖杠" data-src="Sn+iV12iGcU9slSN/2HhWxme4Bt14Glc5HYpdDIxk="/></p><p>  <img alt="典藏44444 | 怎么匹配竖杠" data-src="Sn+2tmtXHKlQO71"/></p>'
pat = '<img[^>]+>'
pics_html = re.compile(pat).findall(content0)
for i in pics_html:

    content2 = re.sub(i, '', content0, flags=re.I)
    print(content2)

我不单单是要替换 |   而是包含|  img 整个标签




之所以不直接替换所有img 要用for  是因为 for下面还有其他的代码 必须要用for。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 12:54:28 | 显示全部楼层
我不是第一个 发表于 2022-10-26 12:41
import re
content0 = '    '
pat = ']+>'

什么?
想想办法么,把你的问题说清楚,别人听不懂你的问题,就没办法帮你

我猜,下面这样?
sh-5.1$ cat main.py
#!/usr/bin/env python
#coding=utf-8

import re

content = '<p>  <img alt="典藏1223 | 怎么匹配竖杠" data-src="Sn+iV12iGcU9slSN/2HhWxme4Bt14Glc5HYpdDIxk="/></p><p>  <img alt="典藏44444 | 怎么匹配竖杠" data-src="Sn+2tmtXHKlQO71"/></p>'
pattern = r'<[^>]*(?=\|)'
print(re.sub(pattern, '', content))
sh-5.1$ ./main.py
<p>  | 怎么匹配竖杠" data-src="Sn+iV12iGcU9slSN/2HhWxme4Bt14Glc5HYpdDIxk="/></p><p>  | 怎么匹配竖杠" data-src="Sn+2tmtXHKlQO71"/></p>
sh-5.1$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 13:02:43 | 显示全部楼层
我不是第一个 发表于 2022-10-26 12:41
import re
content0 = '    '
pat = ']+>'

这样直接替换不行?
下面的代码用for干什么?
sh-5.1$ cat main.py
#!/usr/bin/env python
#coding=utf-8

import re

content = '<p>  <img alt="典藏1223 | abcd" data-src="Sn+iV12iGcU9slSN/2HhWxme4Bt14Glc5HYpdDIxk="/></p><p>  <img alt="典藏44444|def" data-src="Sn+2tmtXHKlQO71"/> <img alt="abcdefg" data-src="Sn+2tmtXHKlQO71"/></p>'
pattern = r'<img[^|]*?\|.*?>'
print(re.sub(pattern, '', content))
sh-5.1$ ./main.py
<p>  </p><p>   <img alt="abcdefg" data-src="Sn+2tmtXHKlQO71"/></p>
sh-5.1$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-26 13:39:50 | 显示全部楼层
人造人 发表于 2022-10-26 13:02
这样直接替换不行?
下面的代码用for干什么?

必须要用for ,已经找到问题所在了。    代码里面有个 + 没有注释掉。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 23:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表