我不是第一个 发表于 2021-10-5 17:31:05

请教一个正则的问题

https://img.4414.cn/forum/202110/05/171355n80zjhskps8caacz.png

我想替换字符串中包含所有AB中间的字符, 如果AB中间包含java 字符 就不替换,这个怎么写啊。。

白two 发表于 2021-10-5 17:39:48

本帖最后由 白two 于 2021-10-5 17:47 编辑

什么意思呢?需求描述清楚一点,
是类似于这样吗?
'AbalabalaB'
替换 A 和 B 中间那一段字符串?
import re

str1 = "AbalabalaB"
partten = re.compile('A(.*?)B')
str2 = partten.search(str1).group(1)
result = str1.replace(str2, " ")
print(result)

至于中间含有java字符,加一个判断就行

我不是第一个 发表于 2021-10-5 17:42:09

白two 发表于 2021-10-5 17:39


刷新下网页, 网络图片有时有有时没有,我也不知道怎么回事。我不能发本地图片

白two 发表于 2021-10-5 17:48:21

本帖最后由 白two 于 2021-10-5 17:57 编辑

我不是第一个 发表于 2021-10-5 17:42
刷新下网页, 网络图片有时有有时没有,我也不知道怎么回事。我不能发本地图片

图片的话要上传,详情看这个教程
[新手教程] 如何正确地发代码、上传图片和附件?

我不是第一个 发表于 2021-10-5 18:04:46

白two 发表于 2021-10-5 17:48
图片的话要上传,详情看这个教程
[新手教程] 如何正确地发代码、上传图片和附件?

谢谢解答,我刚才已经解决这个问题了。。{:5_109:}

白two 发表于 2021-10-5 19:08:38

大概就是这么个思路
import re

str1 = "AbalabalaB。。。A...javammmBaABjdkfjdlkaAkkkB"
partten1 = re.compile('A.*?B')
partten2 = re.compile('A(.*?)B')
str2 = partten1.findall(str1)
print(str2)
for str3 in str2:
    if 'java' in str3:
      continue
    else:
      str4 = partten2.search(str3).group(1)
      if str4:
            str1 = str1.replace(str4, " ")
print(str1)

这是运行结果:
A B。。。A...javammmBaABjdkfjdlkaA B
你可以自己改进一下
页: [1]
查看完整版本: 请教一个正则的问题