2013-05-05 36 views
2

我是新來的正則表達式。我使用支持正則表達式的「Everything」搜索工具,我需要做一個簡單的搜索。我需要在我的計算機上找到名稱中帶有TH =和DB =的文件(順便提一下,它們不是常規名稱,而是字符串),還有CH =的文件,但我需要排除具有EL =的文件。例如,我需要找到名爲xyz = TH = DB =,CH = xyz =,DB = TH =等但不是TH = xyz =,xyz = DB =,EL = TH = DB =,CH = EL =等,謝謝您的幫助。A和B或C但不是D的正則表達式搜索字符串

+0

你有它的正則表達式功能的文檔?如果它支持lookahead,你可以使用'^(?!。* EL =)((?=。* CH =)|(?=。* TH)(?=。* DB))''。如果它有效,我可以給你寫一個完整的答案,解釋實際發生的事情。 – 2013-05-05 23:47:10

回答

0

你可能想環視:

http://www.regular-expressions.info/lookaround.html

baiscally你可以找到這樣的事情:

/(A|B)(?!C)/ 

,除非一方後跟你會得到一個匹配的一切或B C.

如果你的正則表達式引擎不支持零寬度斷言,它會變得更難做這種事情。

+0

除非緊接着'C',否則它會查找'A'或'B'。如果'C'在所需部分之前(或者如果它在字符串中的任何位置,我支持),則匹配也應該被排除。同時,這並不涉及匹配的兩個部分(只有當它們都發生時,'TH'和'DB',無論順序如何)。 – 2013-05-05 23:58:06

+0

感謝您的回覆。 m.buettner,字符串不起作用,並且關於此實用程序支持哪些正則表達式功能的信息很少。也許我會嘗試他們的支持論壇 - 我不知道他們有一個。 – user2352949 2013-05-06 00:09:02

+0

@ user2352949沒有lookarounds,特別是排除多字符模式(在​​你的情況下是'EL =')將是一個痛苦。 – 2013-05-06 00:17:50

相關問題