2017-03-15 87 views
-1

给定一个字符串作为输入,我想查找并将字符串的整数元素转换为字符串num。这里有一个例子:用文本文件中的字符串替换数字

输入:

"abc 123 def 1 in 1s and 100MB" 

输出:

"abc >num<def>num< in 1s and 100MB" 

我该怎么办呢?

+2

问题是什么? –

+0

呵呵?不知道这里发生了什么 – The4thIceman

+1

它是最高级别的编程语言:) – kimreik

回答

1

使用regular expression

import re 

s = "abc 123 def 1 in 1s and 100MB" 

print(re.sub(r"\b\d+\b", ">num<", s)) 
# output: "abc >num<def>num< in 1s and 100MB" 

正则表达式串r"\b\d+\b",其由通过字边界(\b)包围的至少一个数字字符(\d+)的字符串相匹配。 \b部分也匹配字符串的开头和结尾。

re.sub()呼叫由第二个参数(">num<")取代在第三个参数s匹配字符串的所有出现。

3

这就是这样。

text_in = "abc 123 def 1 in 1s and 100MB" 
text_out = ' '.join(['>num<' if x.isnumeric() else x for x in text_in.split()]) 
print(text_out) # prints: abc >num<def>num< in 1s and 100MB 

我冒昧地认为,你可以从文件中读取的文本,也可以写新的文本文件,所以我跳过那些部分。

这一切归结为使用isnumeric()