Tôi đang tìm cách lấy một chuỗi và chia nhỏ nó thành một mảng tại các ngắt dòng (\ n) Tôi đã thử sử dụng split
nhưng sẽ lấy đi dấu phân tách. Tôi cần \n
để được giữ ở cuối mỗi dòng nếu nó tồn tại. Có một cái gì đó như thế này đã tồn tại hoặc tôi sẽ cần phải mã nó bản thân mình?Cái gì đó tương tự như split()?
Trả lời
Tôi đã thử sử dụng tính năng tách nhưng điều đó sẽ xóa dấu phân tách. Tôi cần \ n để được giữ ở cuối mỗi dòng nếu nó tồn tại.
Bạn vẫn có thể sử dụng và duy trì ngắt dòng nếu bạn sử dụng nhìn về phía trước hoặc nhìn sau trong regex của mình. Xem hướng dẫn biểu thức chính quy tốt nhất mà tôi biết:
Regex Tutorial
Look-Around section of the Regex Tutorial.
Ví dụ:
public class RegexSplitPageBrk {
public static void main(String[] args) {
String text = "Hello world\nGoodbye cruel world!\nYeah this works!";
String regex = "(?<=\\n)"; // with look-behind!
String[] tokens = text.split(regex);
for (String token : tokens) {
System.out.print(token);
}
}
}
Các nhìn về phía trước hoặc tìm-sau (còn gọi là "nhìn xung quanh") là không phá hủy để các nhân vật họ phù hợp.
Thay vì chỉ đơn giản là nói "bạn đang làm sai" - tại sao không cung cấp giải pháp ...? – debracey
@debracey: đó là kế hoạch tất cả cùng. Tôi thường đăng một câu trả lời ban đầu và sau đó thêm câu trả lời cho nó, để không làm việc trên các câu hỏi bị xóa. Tôi ghét nó khi điều đó xảy ra. Tôi cũng không thích đăng mã mà không thử nghiệm nó trước. –
Vâng - Tôi thấy bạn đã chỉnh sửa bài đăng :-) – debracey
Thay thế cho @Hovercraft giải pháp với lookahead khẳng định:
String[] result = s.split("(?=\n)");
Thông tin chi tiết về lookahead trong http://www.regular-expressions.info/lookaround.html
Đúng, một giải pháp tốt là tốt. 1+ –
Một giải pháp khác chỉ là thêm delimiters sau khi tách
String delimiter = "\n"
String[] split = input.split(delimiter);
for(int i = 0; i < split.length; i++){
split[i] += delimiter;
}
- 1. một cái gì đó tương tự như python-DJANGO trong PHP?
- 2. Có một cái gì đó tương tự như Nhibernate "Mapping by code" cho Hibernate
- 3. Có phải cái gì đó tương tự như ServiceLoader trong Java 1.5 không?
- 4. Một cái gì đó tương tự như C# .NET Generic List trong java
- 5. Có một cái gì đó trong PHP tương tự như Option Explicit trong VB
- 6. OpenCL của AMD có cung cấp cái gì đó tương tự như GPUDirect của CUDA không?
- 7. Điều gì đó tương tự như java.util trong Javascript?
- 8. Có cái gì đó giống như Python 'với' trong C#?
- 9. Một cái gì đó như JsFiddle cho VBScript?
- 10. là gì lệnh p4 tương đương với một cái gì đó giống như tình trạng svn
- 11. Một cái gì đó như jQuery.extend() nhưng độc lập?
- 12. Có cái gì đó giống như `last` cho` map`?
- 13. Một cái gì đó như Tryparse từ Convert.FromBase64String
- 14. Có cách nào để sử dụng một cái gì đó tương tự như C# 's tại quoting (@ "") trong java
- 15. Có thư viện iPhone để cung cấp một cái gì đó tương tự như một cửa sổ iPad?
- 16. Sử dụng PHP để tạo lại một cái gì đó tương tự như VistaPrint/CafePress/Zazzle. Bất kỳ ý tưởng?
- 17. ngôn ngữ Lua: làm thế nào sử dụng một cái gì đó tương tự như danh sách python comprehensions
- 18. PTVS hoặc một cái gì đó tương tự trong studio trực quan 2012 express -desktop
- 19. Tôi làm cách nào để tạm dừng một BackgroundWorker? Hoặc một cái gì đó tương tự
- 20. xác thực cấu trúc dữ liệu python bằng Validator (hoặc một cái gì đó tương tự)
- 21. Googles ổi có phương pháp số nguyên java tryparse hay cái gì đó tương tự?
- 22. Trong đó có cái gì đó tương tự như Thread.yield của Java() bằng Python? Điều đó thậm chí có ý nghĩa không?
- 23. Có cái gì đó giống như Incanter cho Haskell?
- 24. Có cái gì đó giống như WMI cho Linux?
- 25. Một cái gì đó như tăng :: multi_index cho Python
- 26. Tôi cần một cái gì đó như "using Base :: *;"
- 27. điều gì đó tương tự như SDWebImage trong iOS dành cho Android?
- 28. Sự khác biệt giữa vị trí ruột kết trong: cái gì đó và cái gì đó:
- 29. ruby có thứ gì đó tương tự như buildout hay virtualenv không?
- 30. Có điều gì đó tương tự như mini-mvc-profiler cho Java không?
nhờ chàng trai! nó đã khắc phục được vấn đề của tôi. Tôi đã cố gắng một triệu lần để hiểu regex, vẫn chưa nhận được nó xuống. – bwoogie
Bạn thực sự nên có một cái nhìn tại các hướng dẫn mà tôi đã liên kết đến như nó là hướng dẫn regex tốt nhất mà tôi đã nhìn thấy cho đến nay. –