我想创建一个RegEx来帮助我完成我的流程。我必须看看包含文本的2个字段是否匹配,例如
fA="John Cohen" and fB="Jackie Cohen SRL"
首先:我想看看有多少单词==> fA为2,fB为3。有时fA或fB只有1个字,我需要查看fA = fB
第二:我需要看看fA中是否包含fA,或者是否相同,有什么不同?
如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
正则表达不会成为您想要的正确工具。
您可以先拆分字符串(这会为您提供单词列表),然后从中提取sets。
然后,您可以轻松快速地获取常见元素,差异等,查看所有可能操作的文档。
您想要的一些事情可以通过这种方式完成:
fA="John Cohen"
fB="Jackie Cohen SRL"
set_A = set(fA.split())
# {'Cohen', 'John'}
set_B = set(fB.split())
# {'Cohen', 'Jackie', 'SRL'}
if len(set_A) == 1 and set_A == set_B:
print("Both strings are {}".format(fA))
# set_A included in (or equal to) set_B?
if set_A <= set_B:
print("{} included in {}".format(set_A, set_B))
# common elements
print(set_A & set_B)
# {'Cohen'}
# in set_B but not in set_A
print(set_B - set_A)
# {'SRL', 'Jackie'}
# in set_A or set_B, but not in both
print(set_A ^ set_B)
# {'John', 'SRL', 'Jackie'}
你可以打印一组这样的元素:
print('/'.join(set_A ^ set_B))
# John/SRL/Jackie
但请注意,订单将是随机的,因为订单不是订购的。
您也可以将这些集合转换为list(set_A)
的列表,并根据需要对它们进行排序。