我一直都在为这个早晨奋斗。希望有一些正则表达大师可以引导我走向正确的方向。基本上,我使用正则表达式来比较两个字符串值。同样的正则表达式应该适用于这两个字符串,并且如果所有命名组中的所有值都匹配,我们认为字符串等效(这种命名组检查在代码中完成)。命名捕获带有两个变种的正则表达式
对于字符串,我有类似“jw-cst”的东西需要与“cst”进行比较。我需要的正则表达式应该考虑这些等价的,因为之前和包括' - '的任何内容都不应该在指定的组中被捕获。
所以......
JW-CST - >捕获组值= “CST” CST - >捕获组值= “CST”
捕获组的名称是无关紧要的,应用程序我正在通过捕获的每个组简单循环,确保它们匹配两个结果。
到目前为止,我有这样的:(?。(< = - ) | *)
但它似乎是使用第二匹配条件......所以总是返回“jw-cst”而不是“cst”。如果我删除第二个替代(。*),它将正确匹配...任何帮助将不胜感激。
这是你正在使用的唯一一种字符串吗?在这种情况下,一个简单的`/-?((**$/)`就足够了。但我相信它更复杂。那么你能提供一个真正的字符串和你期望的匹配吗? – Pierre 2011-02-02 17:11:11
您需要给出具体和完整的好输入和坏输入示例。 – tchrist 2011-02-02 18:35:47