我需要在句子(字符串)中创建占位符。
My son is 6 years old and my dad is 61 years old.
My son is #0 years old and my dad is #1 years old.
这只是一句话。句子逐行分开,并在句子中包含数字的各种位置和(数字位置混合和不同的长度)。
我尝试过各种代码,但大多数代码都使用模式替换。 我知道程序,如果我在python编程方面经验丰富,我就能做到。
阅读句子(文本文件中的行)。计算句子中的数字(d +)数,然后如果句子由6个数字组成,则从句子中的最后一个数字开始替换为第一个数字(#6,#5,#4,...)。
My dog is 3 years old, 92.4 cm heigh and has 16 teeth.
计算各种长度的数字(1a,1b1,1c11,1111,1.1是8个数字):4。
1。循环(替换第4个数字):
My dog is 3 years old, 92.4 cm heigh and has #4 teeth.
2。环:
My dog is 3 years old, 92.#3 cm heigh and has #4 teeth.
第3。环:
My dog is 3 years old, #2.#3 cm heigh and has #4 teeth.
4。环:
My dog is #1 years old, #2.#3 cm heigh and has #4 teeth.
将行添加到文件末尾并从文件中取另一行。 重复这些步骤,直到文件结束。
答案 0 :(得分:0)
既然你提到过python,你可以这样做:
import re
myStr = "My son is 6 years old and my dad is 61 years old."
expr = r'[^#][0-9]+'
idx = 1
while True:
try:
match = re.search(expr,myStr)
print match.start()
print match.end()
print myStr[match.start():match.end()]
myStr = myStr[:match.start()+1] + '#' + str(idx) + myStr[match.end():]
idx += 1
except AttributeError:
break
print myStr