换一个词但又有特殊情况时替换

时间:2019-04-08 21:01:58

标签: python parsing text

我的程序在文件中将标记替换为值。在某一行中读取时,它会卡在这里,这是一个示例: <Spinner hidden={true} size={SpinnerSize.large} label="manish's large spinned" />

示例中的两个令牌是Token100和Token100a。我需要一种仅用其数据替换Token100而不用之后的Token100数据替换Token100a的方法。我找不到前后的空格,因为有时它们在行的中间。任何想法表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

import re
line = "1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1Token100a"

match = re.sub("Token100a", "data", line)
print(match)

输出:

 1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1data

有关正则表达式的更多信息:

https://www.w3schools.com/python/python_regex.asp

答案 1 :(得分:0)

您可以将正则表达式与negative lookahead配合使用,以确保以下字符不是"a"

>>> import re
>>> test = '1.1.1.1.1.1.1.1.1.1 Token100.1 1.1.1.1.1.1.1Token100a'
>>> re.sub(r'Token100(?!a)', 'data', test)
'1.1.1.1.1.1.1.1.1.1 data.1 1.1.1.1.1.1.1Token100a'