Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
224 views
in Technique[技术] by (71.8m points)

python - Re.sub not working for me

I'm trying to get re.sub to replace a pattern specified with a value for example

for lines in f:
    pattern='${2}'+key[0]+'${2}'
    re.search(pattern,lines)

this return the line where the pattern was found. For example this is one of the test returns if got

this is a $$test$$

The problem i'm having is when i do the following

re.sub(pattern,key[1],lines)

nothing happens. What am i missing? For more info key[0]=test and key[1]=replace so what i'm trying to do is whenever "$$test$$" is encountered it will replace it with "replace". I have no problem finding "$$test$$" but for some reason re.sub isn't replacing it.

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You are assigning the result of re.sub back to a variable, right? e.g.

lines = re.sub(pattern, key[1], lines)

It's a string, so it can't be changed (strings are immutable in Python), therefore a new string is created and returned to you. If you don't assign it back to a name, you will lose it.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...