2011-12-31 35 views
13

Tôi đã cố gắng tìm cách để loại bỏ nhiều hơn một khoảng trắng.Xóa nhiều hơn một khoảng trắng trong powershell

Nhưng những gì tôi tìm thấy là làm thế nào để làm điều đó trong php. "Removing more than one white-space"

Sẽ có biểu thức chính quy tương tự có thể có sẵn.

Làm thế nào để đạt được điều tương tự trong PowerShell?

chuỗi của tôi là như thế này

Xcopy Source Desination 

Một số dòng có thể chứa nhiều hơn một khoảng trắng giữa nguồn và đích.

Trả lời

42

Nếu bạn đang tìm kiếm để sụp đổ nhiều ký tự khoảng trắng liên tiếp vào một không gian duy nhất sau đó bạn có thể làm điều này bằng cách sử dụng -replace điều hành:

'[  Hello,  World!  ]' -replace '\s+', ' ' 

... lợi nhuận ...

[ Hello, World! ] 

Tham số đầu tiên là -replace là mẫu regular expression để khớp và tham số thứ hai là văn bản sẽ thay thế bất kỳ kết quả phù hợp nào. \s sẽ khớp với một ký tự khoảng trắng và + cho biết để khớp với một hoặc nhiều lần xuất hiện, do đó, nói cách khác, một hoặc nhiều ký tự khoảng trống liền kề sẽ được thay thế bằng một dấu cách. Nhập help about_comparison_operators hoặc xem here để biết thêm thông tin.

+0

Cảm ơn Mr.Bacon. Nó làm công việc cho tôi. – Samselvaprabu

+0

Sử dụng Trim(), TrimStart() và/hoặc TrimEnd() là một tùy chọn rõ ràng hơn. –

+14

Thứ nhất, câu trả lời của tôi là một giải pháp thay thế, làm việc, vì vậy tôi không thấy lý do tại sao nó xứng đáng là một downvote. Thứ hai, các phương thức Trim *() hoạt động đặc biệt ở đầu và/hoặc kết thúc của một chuỗi, trong khi tác giả đưa ra một ví dụ về một chuỗi nơi các khoảng trống cần xóa nằm ở giữa một chuỗi, mà Trim *() sẽ bỏ qua. – BACON

Các vấn đề liên quan