Php dòng mới

Tôi có biểu thức chính quy này, nó có thể bắt được tất cả chúng, vấn đề là tôi không biết tôi nên sử dụng chức năng nào

/\r\n|\r|\n/

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
8 nên trở thành

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";

Marco Demaio

32. 6k33 huy hiệu vàng126 huy hiệu bạc157 huy hiệu đồng

đã hỏi 21 tháng 9 năm 2010 lúc 13. 34

2

Bạn phải thận trọng với việc ngắt dòng đôi, điều này sẽ gây ra khoảng cách kép. Sử dụng biểu thức chính quy thực sự hiệu quả này

$string = trim[preg_replace['/\s\s+/', ' ', $string]];

Nhiều khoảng trắng và dòng mới được thay thế bằng một khoảng trắng

Chỉnh sửa. Như những người khác đã chỉ ra, giải pháp này có vấn đề khớp với các dòng mới ở giữa các từ. Điều này không có trong ví dụ, nhưng người ta có thể dễ dàng thấy tình huống đó có thể xảy ra như thế nào. Một cách khác là làm như sau

$string = trim[preg_replace['/\s+/', ' ', $string]];

đã trả lời 21 tháng 9 năm 2010 lúc 13. 36

jwueller jwueller

30k4 huy hiệu vàng65 huy hiệu bạc70 huy hiệu đồng

5

Một vài nhận xét về câu trả lời được chấp nhận

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
9 có nghĩa là "1 hoặc nhiều hơn". Tôi không nghĩ bạn cần lặp lại
$string = trim[preg_replace['/\s\s+/', ' ', $string]];
0. Tôi nghĩ bạn chỉ cần viết
$string = trim[preg_replace['/\s\s+/', ' ', $string]];
1

Ngoài ra, nếu bạn muốn xóa khoảng trắng đầu tiên và cuối cùng trong chuỗi, hãy thêm

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
2

Với những sửa đổi này, mã sẽ là

$string = preg_replace['/\s+/', ' ', trim[$string]];

đã trả lời 22 tháng 9 năm 2010 lúc 15. 20

matsolof matsolof

2.5553 huy hiệu vàng17 huy hiệu bạc17 huy hiệu đồng

1

Chỉ cần sử dụng

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
3

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
1

Bạn có thể thoát khỏi

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
4 trên cái này, mặc dù mã trông không rõ ràng

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
3

Xem nó trực tiếp trên ideone

đã trả lời 21 tháng 9 năm 2010 lúc 13. 36

NullUserException NullUserException

82k27 huy hiệu vàng205 huy hiệu bạc230 huy hiệu đồng

13

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
4

đã trả lời 21 tháng 9 năm 2010 lúc 13. 36

vải vải

13. 8k8 huy hiệu vàng56 huy hiệu bạc70 huy hiệu đồng

4

Bạn nên sử dụng str_replace vì tốc độ của nó và sử dụng dấu ngoặc kép với một mảng

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
5

đã trả lời 21 tháng 9 năm 2010 lúc 13. 39

RobertPitt RobertPitt

56. 2k21 huy hiệu vàng113 huy hiệu bạc159 huy hiệu đồng

3

Tôi không chắc liệu điều này có bất kỳ giá trị nào so với các câu trả lời đã được gửi hay không nhưng tôi cũng có thể đăng nó

/\r\n|\r|\n/
0

Jimmix

4.9543 huy hiệu vàng32 huy hiệu bạc61 huy hiệu đồng

đã trả lời 19/11/2015 lúc 13. 48

Peter Peter

8.3396 huy hiệu vàng55 huy hiệu bạc92 huy hiệu đồng

Trình tự thoát

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
5 khớp với một dòng mới chung

nghĩa là, bất cứ thứ gì được coi là trình tự ngắt dòng theo Unicode. Điều này bao gồm tất cả các ký tự khớp với

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
6 [khoảng trắng dọc] và chuỗi nhiều ký tự
$string = trim[preg_replace['/\s\s+/', ' ', $string]];
7

/\r\n|\r|\n/
1

Ở chế độ 8 bit không phải UTF-8,

$string = trim[preg_replace['/\s\s+/', ' ', $string]];
5 tương đương như sau.
$string = trim[preg_replace['/\s\s+/', ' ', $string]];
9. pcre. tổ chức

Regex101 Demo

đã trả lời 16/11/2014 lúc 12. 39

Anton Anton

1291 huy hiệu bạc1 huy hiệu đồng

1

Ngắt dòng trong văn bản thường được biểu diễn dưới dạng

\r\n - trên máy tính windows

\r - trên máy tính Apple

\n - trên Linux

/\r\n|\r|\n/
2

dave

3.0667 huy hiệu vàng19 huy hiệu bạc33 huy hiệu đồng

đã trả lời 2 tháng 8 năm 2018 lúc 12. 08

Việc thay thế regex PCRE có thể được thực hiện bằng cách sử dụng preg_replace. http. //php. net/thủ công/vi/chức năng. thay thế trước. php

/\r\n|\r|\n/
3

Sẽ thay thế dòng mới hoặc trả lại các ký tự bằng khoảng trắng. Nếu bạn không muốn bất cứ thứ gì thay thế chúng, hãy thay đổi đối số thứ 2 thành

$string = trim[preg_replace['/\s+/', ' ', $string]];
0

đã trả lời 21 tháng 9 năm 2010 lúc 13. 37

n00dle n00dle

5.8112 huy hiệu vàng35 huy hiệu bạc48 huy hiệu đồng

1

Dùng cái này

thay thế hàng loạt dòng mới bằng một chuỗi trống

/\r\n|\r|\n/
4

hoặc bạn có thể muốn thay thế các dòng mới bằng một khoảng trắng

/\r\n|\r|\n/
5

đã trả lời 21 tháng 9 năm 2010 lúc 13. 37

netom netom

3.2722 huy hiệu vàng20 huy hiệu bạc21 huy hiệu đồng

2

chuyện gì

/\r\n|\r|\n/
6

Đây phải là một giải pháp khá mạnh mẽ vì \n không hoạt động chính xác trong tất cả các hệ thống nếu tôi không sai

đã trả lời 8 tháng 6 năm 2016 lúc 11. 45

GDY GDY

2.7451 huy hiệu vàng23 huy hiệu bạc42 huy hiệu đồng

3

Tôi rất ngạc nhiên khi thấy mọi người biết rất ít về regex

Dải dòng mới trong php là

/\r\n|\r|\n/
7

trong perl

/\r\n|\r|\n/
8

Có nghĩa là thay thế bất kỳ ký tự dòng mới nào ở cuối dòng [để đạt hiệu quả] - tùy chọn trước dấu xuống dòng - bằng khoảng trắng

\n hoặc \015 là dòng mới. \r hoặc \012 là dấu xuống dòng. ? . $ trong regex có nghĩa là khớp cuối dòng

Tài liệu tham khảo regex gốc và tốt nhất là perldoc perlre, mọi lập trình viên nên biết khá rõ về tài liệu này. http. //perldoc. perl. tổ chức/perlre. html Lưu ý rằng không phải tất cả các tính năng đều được hỗ trợ bởi tất cả các ngôn ngữ

Chủ Đề