首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一定条件下替换子字符串

在一定条件下替换子字符串
EN

Stack Overflow用户
提问于 2016-03-30 16:56:29
回答 4查看 66关注 0票数 0

以下是我所拥有的:

代码语言:javascript
复制
stem_text = "x^3+21x^2+1x+6"

我想把它改为:

代码语言:javascript
复制
stem_text = "x^3+21x^2+x+6"

下面是我的代码:

代码语言:javascript
复制
indices = [m.start() for m in re.finditer("1x", stem_text)]
for i in indices:
    if stem_text[i-1] not in ["0","1","2","3","4","5","6","7","8","9"]:
        stem_text = stem_text.replace(stem_text[i:i+2],"x")`

但是,它仍在取代"1x“这两种情况。

我利用这两篇文章让我想到了我应该做的事情,但事实并非如此:

EN

回答 4

Stack Overflow用户

发布于 2016-03-30 17:17:14

如果方程只有加法运算符:

代码语言:javascript
复制
stem_text = "x^3+21x^2+1x+6"

new_string = stem_text.replace('+1x','+x')
print(new_string)

输出:

代码语言:javascript
复制
x^3+21x^2+x+6

如果方程有多个运算符:

代码语言:javascript
复制
stem_text = '1x+1x-1x/1x*1x+10x'
op_list = ['','+','-','*','/']
#list of operations in equation
for each_op in op_list:
    stem_text = stem_text.replace(each_op+'1x',each_op+'x') #'each_op + 1x' is used to prevent replacing nos. like 21x,31x etc


print(stem_text)

输出:

代码语言:javascript
复制
x+x-x/x*x+10x

注:这是一种低效的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2016-03-30 17:08:01

将\b添加到模式1x中以实现完全匹配:单词1x,而不是匹配的21x或其他包含1x的单词

代码语言:javascript
复制
import re
stem_text = "x^3+21x^2+1x+6"

print(re.sub(r'\b1x\b', r'x', stem_text))

结果是

代码语言:javascript
复制
x^3+21x^2+x+6

阅读python 文档

票数 0
EN

Stack Overflow用户

发布于 2016-03-30 17:16:25

如果您只想替换"1x“,请使用下面的示例:

代码语言:javascript
复制
stem_text = "x^3+21x^2+1x+6"
indices = [x for x in stem_text.split("+")]
for i in indices:
    if len(i) == 2 and i == "1x": stem_text = stem_text.replace(i + "+", "x+")

print stem_text

输出:x^3+21x^2+x+6

如果要替换"x“之前的任何数字,请使用以下示例:

代码语言:javascript
复制
stem_text = "x^3+21x^2+1x+6+2x+4x+0x"
indices = [x for x in stem_text.split("+")]
Int = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
for x in indices:
    for i in Int:
        if x == i + "x": stem_text = stem_text.replace(i + "x", "x")

print stem_text

输出:x^3+x^2+x+6+x+x+x

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36315137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档