2010-12-26 10 views
5

Tôi có một chuỗi trong R, ví dụ: x < - "c: \ tmp \ rest.zip". Làm thế nào tôi có thể phát hiện ra rằng nó có trình tự thoát trong nó, vis. \ t và \ r? Chúng tôi DOS/Windows guys có thói quen sử dụng dấu gạch chéo ngược mà R không thích và tôi đang viết một chức năng mà tôi muốn để có thể bảo vệ người dùng từ mình.Trong R, làm thế nào bạn có thể biết một chuỗi bao gồm các chuỗi thoát?

Cảm ơn.

Trả lời

11

tăng gấp đôi của back-slashes trong mẫu grep là con đường dẫn đến thành công:

xtxt <- c("test\n", "of\t", "escapes") 
grep("\\n|\\t", xtxt) 
# [1] 1 2 

Một cách khác là để tìm kiếm các ký tự điều khiển:

grep("[[:cntrl:]]", xtxt) 
#[1] 1 2 
+0

gấp đôi làm việc ok với logic hoặc nhưng chỉ tìm kiếm một trong số họ yêu cầu một dấu gạch chéo ngược duy nhất. Và điều đó cũng làm việc với hoặc. Làm cách nào bạn tìm ra cú pháp cntrl? – John

+3

Trang trợ giúp có các lớp được định sẵn như [: cntrl:] là? Regex –