比较正则表达式模式

时间:2015-11-04 14:34:20

标签: c# regex

假设我们有两个正则表达式,它们不同但实际上意思相同,例如:

XX[0-9]{1,5}:.*

XX[0-9]{1,5}: .*

唯一的区别是之前的空格。*有没有办法检查这些模式是否得到相同的匹配?

2 个答案:

答案 0 :(得分:2)

编写正则表达式的方法有很多种,可以有效地匹配同一组字符串。

示例

以下3个正则表达式匹配相同的字符串集。这可以任意扩展。

[A-Z]{3}
[A-Z][A-Z]{2}    
[A-Z][A-Z][A-Z]

<强>更新

我做了一些研究,发现了paper,描述了如何实现这样的程序。我找不到任何现成的样品。

答案 1 :(得分:0)

你的例子中的两个正则表达式实际上并不意味着同样的事情。

您可以使用http://regexhero.net/tester/轻松在线查看正则表达式的匹配项。专业版的分析功能可能有助于手动比较正则表达式。

如果您有一个有限的testdata子集,您可以编写一个测试工具来检查所有数据并显示不一致。否则,也许在技术上有一种方法可以证明它们给出了相同的结果,但是它太复杂了,只是将一个简单的程序放在一起就可以了。

如果你解释为什么需要这个,也许我们可以帮助更多