【发布时间】:2010-12-05 02:08:19
【问题描述】:
我有一个正则表达式,我需要匹配这样的路径:“C:\Documents and Settings\User\My Documents\ScanSnap\382893.pd~”。我需要一个匹配所有路径的正则表达式,除了以“~”或“.dat”结尾的路径。我遇到的问题是我不明白如何匹配和否定确切的字符串 '.dat' 并且仅在路径的末尾。即我不想匹配路径中其他地方的{d,a,t}。
我已经构建了正则表达式,但不需要匹配 .dat
[\w\s:\.\\]*[^~]$[^\.dat]
[\w\s:\.\\]* 这匹配所有单词、空格、冒号、句点和退格。
[^~]$[^\.dat]$ 这会导致以 '~' 结尾的匹配失败。看来我应该能够跟进 '.dat' 的否定匹配,但匹配在我的正则表达式测试器中失败。
我认为我的答案在于根据我所阅读的内容进行分组,有人会指出我正确的方向吗?我应该补充一下,我正在使用一个允许正则表达式匹配的文件监视程序,我只有一行来指定正则表达式。
此条目似乎相似:Regex to match multiple strings
【问题讨论】:
标签: c# regex regex-negation