У меня есть регулярное выражение, которое мне нужно сопоставить с путем, например: "C:\Documents and Settings\User\My Documents\ScanSnap\382893.pd~
". Мне нужно регулярное выражение, которое соответствует всем путям, кроме тех, которые заканчиваются на '~' или '.dat
'. У меня проблема в том, что я не понимаю, как сопоставить и свести на нет точную строку «.dat
» и только в конце пути. то есть я не хочу совпадать с {d,a,t}
в другом месте пути.
Я построил регулярное выражение, но не должен совпадать .dat
[\w\s:\.\\]*[^~]$[^\.dat]
[\w\s:\.\\]*
Соответствует всем словам, пробелам, двоеточию, точкам и пробелам.
[^~]$[^\.dat]$
Это приводит к сбою матчей, заканчивающихся на '~'. Похоже, что я должен быть в состоянии выполнить отрицательное совпадение для «.dat», но в моем тестере регулярных выражений это не удается.
Я думаю, мой ответ заключается в группировке, судя по тому, что я прочитал, кто-то укажет мне правильное направление? Я должен добавить, я использую программу для просмотра файлов, которая позволяет сопоставлять регулярные выражения, у меня есть только одна строка для определения регулярного выражения.
Эта запись выглядит аналогично: Regex для сопоставления нескольких строк