У меня есть полезный груз, который содержит следующее:регулярное выражение, чтобы соответствовать все, кроме характера
\ PATRICK-TES t - f i l e . t x t x SMB2
Я ищу, чтобы извлечь имя файла patrick-test-file.txt
Я могу подобраться с помощью этого, но она по-прежнему включает в себя все (в том числе символов ASCII)
[\\\\](.*?)x�SMB2
В результате: p a t r i c k - t e s t - f i l e . t x t для группы захвата.
Как бы я просто совпадал с символами имени файла, которое могло быть чем угодно переменной длины и могло содержать буквенно-цифровые символы? Возможно ли это с чистым регулярным выражением?
Любая помощь очень ценится.
Можете ли вы использовать группу символов: '[^ \ w \ d.] +' И заменить ее «ничего»? [Regex101.com] (http://regex101.com/r/tR8dX0/1) или [это] (http://regex101.com/r/tR8dX0/2). (edit: Я думаю, что оба '\ w' и' \ d' являются избыточными). – OnlineCop
На каком языке? Какой регулярный двигатель? – revo
@OnlineCop Я вижу проблемы с заменой его ничем, но я думаю, что это отличная идея заменить '[^ - \ w. \\] ([- \ w. \\])' с '$ 1', который будет содержать разделение частей (имя файла и окончание x SMB2), а затем строка-анализ остальных. – Suamere