我使用PowerShell來查詢從結果應該像下的服務路徑的文件擴展名後刪除字符串exe文件擴展名,例如輸出可能類似於以下之一:正則表達式
- C:\目錄\子目錄\ service.exe ThisTextNeedsRemoving
- C:\目錄\子目錄\ service.exe - ThisTextNeedsRemoving
- C:\ directory \ sub-dir ectory \ service.exe/ThisTextNeedsRemoving
即ThisTextNeedsRemoving可能會進行空格,連字符或正斜槓。
我可以使用regex -replace'($ *。exe)。*'刪除之後的所有內容,但包括.exe文件擴展名,但是如何將.exe保留在結果中?
'($ *。exe文件)。*'不匹配沒有'(M)'修改任何東西。我想你需要'^(\ S +)。*'(或'^(\ S + \。exe)。*')並用'$ 1'代替。 –
如果輸入'$ s',請嘗試'$ s -replace'^(\ S + \。exe)。*','$ 1''。 –
不要在實際生產中使用lookbehind,請在捕獲和反向引用中使用我的方法。在性能方面,後視是最糟糕的。雖然在這種情況下並不重要,但習慣最佳實踐是一個好主意。 –