给定一个字符串作为输入,我想找到并转换该字符串num
的整数元素。这是一个例子:
输入:
"abc 123 def 1 in 1s and 100MB"
输出:
"abc >num< def >num< in 1s and 100MB"
我该怎么做?
答案 0 :(得分: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()
。
答案 1 :(得分:1)
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"
匹配由字边界(\d+
)包含的至少一个数字字符(\b
)组成的字符串。 \b
部分也匹配字符串的开头和结尾。
对re.sub()
的调用用第二个参数(s
)替换第三个参数">num<"
中匹配字符串的所有匹配项。