Sự khác biệt giữa \r
và \n
trong một biểu thức chính quy là gì?
Ai đó có thể giải thích nó với một ví dụ?
Hỏi ngày 10 tháng 8 năm 2010 lúc 16:23Aug 10, 2010 at 16:23
\r
là "trở lại vận chuyển" [cr, nhân vật ASCII 13], \n
là "nguồn cấp dữ liệu" [LF, ký tự ASCII 10]. Quay trở lại, bạn có hai ký tự ASCII ở cuối mỗi dòng để nói với một máy in phải làm gì - Cr sẽ nói với máy in quay trở lại cạnh trái của tờ giấy, LF sẽ tiến lên dòng tiếp theo.
Các hệ điều hành vẫn có các quy ước khác nhau về phần cuối của một dòng trông như thế nào - một số trong số chúng có \n\r
, một số có \n
, một số có \r\n
.
Trong JavaScript, bạn chủ yếu đối phó với \n
- đây là cách các chuỗi thường chuyển sang dòng tiếp theo. Tuy nhiên, tùy thuộc vào chuỗi bạn đang làm việc, bạn cũng có thể gặp phải \r
.
Đã trả lời ngày 10 tháng 8 năm 2010 lúc 16:27Aug 10, 2010 at 16:27
EbomikebomikeEboMike
75,9K14 Huy hiệu vàng159 Huy hiệu bạc166 Huy hiệu đồng14 gold badges159 silver badges166 bronze badges
5
Thông thường \r
đại diện cho một ký tự trả về vận chuyển [ASCII \n
0] và \n
là một ký tự dòng mới [ASCII \n
2]. Trang này có một danh sách tất cả các nhân vật đặc biệt, được trích dẫn ở đây để hoàn thiện:
\n
3 phù hợp với việc cấp dữ liệu.\r
phù hợp với vận chuyển trở lại.\n
khớp với LineFeed.\n
6 khớp với tab ngang.\n
7 khớp với tab dọc.\n
8 khớp với nhân vật\n
9.\r
0 khớp với backspace.\r
1 khớp với khoảng trắng [viết tắt cho\r
2].\r
3 phù hợp với bất cứ điều gì ngoại trừ khoảng trắng [viết tắt của\r
4].\r
5 khớp với bất kỳ ký tự chữ và chữ số nào [ký tự từ] bao gồm cả dấu gạch dưới [viết tắt của\r
6].\r
7 khớp với bất kỳ ký tự không từ nào [viết tắt cho\r
8].\r
9 khớp với bất kỳ chữ số nào [viết tắt cho\n
0].\n
1 khớp với bất kỳ chữ số nào [viết tắt cho\n
2].\n
3 khớp với một ranh giới từ [vị trí giữa một từ và một không gian].\n
4 khớp với ranh giới không từ [viết tắt cho\n
5].\n
6 khớp với một ký tự điều khiển. Ví dụ:\n
7 khớp với\n
8.\n
9 khớp với ký tự với hai ký tự của mã thập lục phân\n\r
0.\n\r
1 khớp với ký tự Unicode với bốn ký tự của mã thập lục phân\n\r
2.
Đã trả lời ngày 10 tháng 8 năm 2010 lúc 16:25Aug 10, 2010 at 16:25
Carl Norumcarl NorumCarl Norum
214K37 Huy hiệu vàng417 Huy hiệu bạc468 Huy hiệu đồng37 gold badges417 silver badges468 bronze badges
3
\n
là Linefeed
\r
là vận chuyển trở lại
Trong Windows, ví dụ, kết thúc dòng là \r\n
. Trong phần lớn các hệ điều hành khác, chúng là \n
.
Hamza
14.3k11 Huy hiệu vàng52 Huy hiệu bạc74 Huy hiệu đồng11 gold badges52 silver badges74 bronze badges
Đã trả lời ngày 10 tháng 8 năm 2010 lúc 16:26Aug 10, 2010 at 16:26
JhongjhongJhong
2.68421 Huy hiệu bạc19 Huy hiệu đồng21 silver badges19 bronze badges
2
\r
và \n
là các biểu diễn kỹ thuật số về cách bạn sẽ tiến tới dòng tiếp theo trên một máy đánh chữ. \r
là một cuộc trả lại vận chuyển và \n
là một dòng mới [còn được gọi là Linefeed]. Trên một máy đánh chữ, để bắt đầu dòng mới, bạn sẽ đưa cỗ xe đến vị trí ngoài cùng bên trái và sau đó cho giấy lên một dòng.return the carriage to the leftmost position and then
feed the paper up a line.
Unix sử dụng \n
để có nghĩa là dòng mới, MAC trước OS9 đã sử dụng \r
và Windows sử dụng \r\n
.
Đã trả lời ngày 10 tháng 8 năm 2010 lúc 16:28Aug 10, 2010 at 16:28
\n
-> cho một dòng mới
\r
-> Để trả lại vận chuyển
Hamza
14.3k11 Huy hiệu vàng52 Huy hiệu bạc74 Huy hiệu đồng11 gold badges52 silver badges74 bronze badges
Đã trả lời ngày 10 tháng 8 năm 2010 lúc 16:26Aug 10, 2010 at 17:45
JhongjhongSreeja
2.68421 Huy hiệu bạc19 Huy hiệu đồng11 bronze badges