String str1 = "Great punctuation: keep only words, skip all punctuation.\tAlso - skip all spaces and tab characters!"; str1 = str1.Replace["\t", ""]; char[] spearator = { ',', ' ', '!', ':', ';', '.', '-' }; String[] strlist1 = str1.Split[spearator, StringSplitOptions.RemoveEmptyEntries]; foreach [String x in strlist1] { Console.WriteLine[x]; }Đầu ra.
Tuyệt vời
dấu câu
giữ
chỉ
từ
skip
all
punctuation
Also
skip
all
spaces
and
tab
characters
Tôi có tệp chứa các giá trị được phân tách bằng tab ["\t"]. Tôi đang cố tạo một danh sách và lưu trữ tất cả các giá trị của tệp trong danh sách. Nhưng tôi gặp một số vấn đề. Đây là mã của tôi
line = "abc def ghi"
values = line.split["\t"]
Nó hoạt động tốt miễn là chỉ có một tab giữa mỗi giá trị. Nhưng nếu có một hoặc một tab thì nó cũng sao chép tab đó thành các giá trị. Trong trường hợp của tôi, phần lớn tab phụ sẽ nằm sau giá trị cuối cùng trong tệp
Giải pháp tốt nhất
Bạn có thể sử dụng
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
0 tại đây>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
cập nhật
Bạn có thể sử dụng
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
1 để loại bỏ dấu >>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
2 và sau đó áp dụng regex>>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split[r'\t+', yas.rstrip['\t']]
['yas', 'bs', 'cda']
Giải pháp liên quan
C# – sự khác nhau giữa String và string trong C#
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
3 là một bí danh trong C# cho >>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
4. Vì vậy, về mặt kỹ thuật, không có sự khác biệt. Nó giống như
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
5 so với. >>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
6. Theo hướng dẫn, thông thường nên sử dụng
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
3 bất cứ khi nào bạn đề cập đến một đối tượnge. g
line = "abc def ghi"
values = line.split["\t"]
2Tương tự như vậy, tôi nghĩ thông thường nên sử dụng
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
8 nếu bạn cần tham khảo cụ thể về lớp họce. g
line = "abc def ghi"
values = line.split["\t"]
4Đây là phong cách mà Microsoft có xu hướng sử dụng trong
Có vẻ như hướng dẫn trong lĩnh vực này có thể đã thay đổi, vì StyleCop hiện bắt buộc sử dụng các bí danh cụ thể của C#
Python – Cách kiểm tra xem một tệp có tồn tại mà không có ngoại lệ hay không
Nếu lý do bạn đang kiểm tra là để bạn có thể làm điều gì đó như
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
9, thì sẽ an toàn hơn khi sử dụng >>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split[r'\t+', yas.rstrip['\t']]
['yas', 'bs', 'cda']
0 khi cố gắng mở nó. Việc kiểm tra rồi mở có nguy cơ khiến tệp bị xóa hoặc bị di chuyển hoặc điều gì đó xảy ra giữa thời điểm bạn kiểm tra và khi bạn cố mở tệp đóNếu bạn không định mở tệp ngay lập tức, bạn có thể sử dụng
Trả lại
2 nếu đường dẫn là tệp thông thường hiện có. Điều này tuân theo các liên kết tượng trưng, vì vậy cả hai và có thể đúng cho cùng một đường dẫn>>> yas = "yas\t\tbs\tcda\t\t" >>> re.split[r'\t+', yas.rstrip['\t']] ['yas', 'bs', 'cda']
line = "abc def ghi"
values = line.split["\t"]
8nếu bạn cần chắc chắn đó là một tập tin
Bắt đầu với Python 3. 4, cung cấp một cách tiếp cận hướng đối tượng [được nhập lại vào
>>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split[r'\t+', yas.rstrip['\t']]
['yas', 'bs', 'cda']
4 trong Python 2. 7]>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
0Để kiểm tra một thư mục, hãy làm
>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split[r'\t+', strs]
['foo', 'bar', 'spam']
1Để kiểm tra xem một đối tượng
>>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split[r'\t+', yas.rstrip['\t']]
['yas', 'bs', 'cda']
5 có tồn tại độc lập với tệp hay thư mục hay không, hãy sử dụng >>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split[r'\t+', yas.rstrip['\t']]
['yas', 'bs', 'cda']
6