Python RegEx匹配2个字符串字段

时间:2017-07-10 15:50:58

标签: python regex python-3.x

我想创建一个RegEx来帮助我完成我的流程。我必须看看包含文本的2个字段是否匹配,例如

fA="John Cohen" and fB="Jackie Cohen SRL"

首先:我想看看有多少单词==> fA为2,fB为3。有时fA或fB只有1个字,我需要查看fA = fB

第二:我需要看看fA中是否包含fA,或者是否相同,有什么不同?

如果您需要更多信息,请与我们联系。

1 个答案:

答案 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)的列表,并根据需要对它们进行排序。