给定一个字符串作为输入,我想查找并将字符串的整数元素转换为字符串num
。这里有一个例子:用文本文件中的字符串替换数字
输入:
"abc 123 def 1 in 1s and 100MB"
输出:
"abc >num<def>num< in 1s and 100MB"
我该怎么办呢?
给定一个字符串作为输入,我想查找并将字符串的整数元素转换为字符串num
。这里有一个例子:用文本文件中的字符串替换数字
输入:
"abc 123 def 1 in 1s and 100MB"
输出:
"abc >num<def>num< in 1s and 100MB"
我该怎么办呢?
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
匹配字符串的所有出现。
这就是这样。
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()
。
问题是什么? –
呵呵?不知道这里发生了什么 – The4thIceman
它是最高级别的编程语言:) – kimreik