简体   繁体   English

如何根据特定的字符串匹配将特定字符串附加到另一个字符串?

[英]How to append particular string to another string based on a specific string match?

I need to append _123 if name has _abc_0 or _abc_1 or _abc_# where # is any number of digits . 如果name有_abc_0_abc_1_abc_# ,我需要附加_123 ,其中# is any number of digits How can I write it in if condition? if有条件,我怎么写呢?

name = "name_abc_0_any_chars"
if "_abc_<#any digit>" in name: #not sure what to write in place of <#any digit>
    name = name + "_123"
print "name: ", name

Output: 输出:

name: name_abc_0_any_chars_123

For a solution without regex, you could use the any() function. 对于没有正则表达式的解决方案,您可以使用any()函数。 Eg 例如

a = ['_abc_0', '_abc_1', '_abc_2', '_abc_3', '_abc_4', '_abc_5', '_abc_6', '_abc_7', '_abc_8', '_abc_9']
name = "name_abc_34_other_characters"

if any(x in name for x in a):
    name += "_123"

print("name: ", name)

Output: 输出:

name:  name_abc_34_other_characters_123

Edited 编辑

If you want to test if a variable contains _abc_#d , use re : 如果要测试变量是否包含_abc_#d ,请使用re

import re

name = "name_abc_0_any_chars"
if re.findall('abc_\d+', name):
    name += '_123'

Output: 输出:

'name_abc_0_any_chars_123'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM