我一直都在爲這個早晨奮鬥。希望有一些正則表達大師可以引導我走向正確的方向。基本上,我使用正則表達式來比較兩個字符串值。同樣的正則表達式應該適用於這兩個字符串,並且如果所有命名組中的所有值都匹配,我們認爲字符串等效(這種命名組檢查在代碼中完成)。命名捕獲帶有兩個變種的正則表達式
對於字符串,我有類似「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