我不是第一个 发表于 2022-10-26 11:40:15

正则表达式匹配 |

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

搞定了。谢谢。

hrpzcf 发表于 2022-10-26 12:16:21

用.replace可以替换掉,但是过程太过于复杂。
你要替换成什么?怎么个复杂法

怎么用正则替换掉| 。
你要替换成什么?

我不是第一个 发表于 2022-10-26 12:17:32

hrpzcf 发表于 2022-10-26 12:16
你要替换成什么?怎么个复杂法




开始没说清楚,补充了问题。

人造人 发表于 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>'
>>>

wp231957 发表于 2022-10-26 12:29:55

我不是第一个 发表于 2022-10-26 12:17
开始没说清楚,补充了问题。

t=content0.replace("|","")    这个不行 吗

我不是第一个 发表于 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。

人造人 发表于 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$

人造人 发表于 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$

我不是第一个 发表于 2022-10-26 13:39:50

人造人 发表于 2022-10-26 13:02
这样直接替换不行?
下面的代码用for干什么?

必须要用for ,已经找到问题所在了。    代码里面有个 + 没有注释掉。谢谢{:5_109:}
页: [1]
查看完整版本: 正则表达式匹配 |