可以使用正则表达式来找出字符串中的数字子串,并将其转换为数字进行比较。例如,下面的代码可以比较一个字符串中包含数字“1”到“5”的子串:
import re
def compare_substring_numbers(str1, str2):
#找出str1中包含1-5数字的子串并转换为数字
nums1 = [int(s) for s in re.findall(r'\b[1-5]+\b', str1)]
#找出str2中包含1-5数字的子串并转换为数字
nums2 = [int(s) for s in re.findall(r'\b[1-5]+\b', str2)]
#排序后比较
nums1.sort()
nums2.sort()
return nums1 == nums2
#测试代码
str1 = "abc123xyz14def25"
str2 = "def25xyz14abc123"
print(compare_substring_numbers(str1, str2)) #输出True
在上面的代码中,使用正则表达式\b[1-5]+\b
找出字符串中包含数字“1”到“5”的子串,并将其转换为一个数字列表。然后对这个列表进行排序,最后比较两个字符串的数字列表是否完全相同。