Làm cách nào để xóa tất cả các trích dẫn khỏi danh sách trong python?

Trong hướng dẫn này, chúng ta sẽ nghiên cứu các cách tiếp cận khác nhau để loại bỏ các dấu ngoặc kép bắt đầu và kết thúc khỏi một Chuỗi trong Java

Những gì chúng ta sẽ khám phá ở đây có thể hữu ích cho việc xử lý văn bản được trích xuất từ ​​tệp hoặc nhận được từ các nguồn khác

2. Cách tiếp cận đơn giản. phương thức chuỗi con

Đầu tiên, chúng ta sẽ bắt đầu với một cách tiếp cận đơn giản bằng cách sử dụng phương thức chuỗi con. Phương thức này có thể được gọi trên một đối tượng Chuỗi để trả về một chuỗi con cụ thể

Phương thức yêu cầu hai tham số

  1. beginIndex — chỉ mục của ký tự mà chuỗi con sẽ bắt đầu
  2. end Index - chỉ mục sau nơi chuỗi con sẽ kết thúc

Do đó, xét rằng Chuỗi đầu vào của chúng ta được đặt trong dấu ngoặc kép, chúng ta có thể sử dụng phương thức chuỗi con

String input = "\"text wrapped in double quotes\"";
String result = input.substring(1, input.length() - 1);
System.out.println("Input: " + input);
System.out.println("Result: " + result);

Bằng cách thực thi đoạn mã trên, chúng ta có đầu ra sau

Input: "text wrapped in double quotes"
Result: text wrapped in double quotes

Nếu chúng tôi không chắc liệu Chuỗi có được đặt trong dấu ngoặc kép hay không, chúng tôi có thể kiểm tra nó trước khi chạy phương thức chuỗi con

if (input != null && input.length() >= 2 
      && input.charAt(0) == '\"' && input.charAt(input.length() - 1) == '\"') {
    result = input.substring(1, input.length() - 1);
}

Trong ví dụ trên, chúng tôi đã kiểm tra xem Chuỗi có ít nhất hai ký tự và nó bắt đầu và kết thúc bằng dấu ngoặc kép

3. Sử dụng phương pháp thay thế tất cả

Ngoài phương thức substring, chúng ta cũng có thể sử dụng phương thức replaceAll. Phương thức này thay thế tất cả các phần của Chuỗi khớp với một biểu thức chính quy đã cho. Sử dụng replaceAll, chúng tôi có thể loại bỏ tất cả các lần xuất hiện của dấu ngoặc kép bằng cách thay thế chúng bằng các chuỗi trống

String result = input.replaceAll("\"", "");

Một mặt, cách tiếp cận này có ưu điểm là loại bỏ tất cả các lần xuất hiện của dấu ngoặc kép, ngay cả khi chuỗi có nhiều dòng. Mặt khác, với cách tiếp cận này, chúng tôi không thể chỉ xóa dấu ngoặc kép ở đầu và cuối Chuỗi

Để loại bỏ dấu ngoặc kép ngay từ đầu và cuối Chuỗi, chúng ta có thể sử dụng biểu thức chính quy cụ thể hơn

String result = input.replaceAll("^\"|\"$", "");

Sau khi thực hiện ví dụ này, các lần xuất hiện dấu ngoặc kép ở đầu hoặc cuối Chuỗi sẽ được thay thế bằng chuỗi rỗng

Để hiểu cách tiếp cận này, hãy chia nhỏ biểu thức chính quy của chúng ta

Đầu tiên, chúng ta có ký hiệu dấu mũ (^), theo sau là dấu ngoặc kép thoát (\”) để khớp với dấu ngoặc kép ở đầu Chuỗi. Sau đó, có một biểu tượng ống (. ) để chỉ ra một phương án phù hợp, tương tự như toán tử logic OR

Cuối cùng, chúng tôi đã thoát khỏi dấu ngoặc kép, theo sau là ký hiệu đô la ($) để khớp dấu ngoặc kép ở cuối Chuỗi

4. Dùng Ổi

Một cách tiếp cận khả thi khác để xóa dấu ngoặc kép ở đầu và cuối Chuỗi là sử dụng lớp CharMatcher từ thư viện Guava

String result = CharMatcher.is('\"').trimFrom(input);

Cách tiếp cận này dễ hiểu hơn và chỉ xóa các trích dẫn đầu và cuối khỏi Chuỗi. Tuy nhiên, để phương pháp này hoạt động, chúng ta cần thêm thư viện ổi vào dự án của mình

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>${guava-version}</version>
</dependency>

Trong trường hợp này, chúng tôi cần đặt thuộc tính ${guava-version} thành phiên bản mà chúng tôi muốn sử dụng

5. Phần kết luận

Trong bài viết này, chúng tôi đã khám phá các tùy chọn khác nhau để xóa dấu ngoặc kép ở đầu và cuối Chuỗi. Chúng ta có thể áp dụng bất kỳ phương pháp nào trong số này vào thực tế và mỗi phương pháp đều có ưu điểm và nhược điểm

Ví dụ: khi sử dụng thư viện Guava, chúng tôi có một giải pháp đơn giản và thanh lịch. Tuy nhiên, nếu Guava không được đưa vào dự án của chúng tôi, giải pháp này sẽ yêu cầu bổ sung một phụ thuộc mới

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách loại bỏ các dấu nháy đơn khỏi chuỗi. Đôi khi, chúng ta phải loại bỏ tất cả các phần hoặc chỉ những phần xung quanh một chuỗi. Chúng tôi cũng có thể loại bỏ dấu ngoặc đơn và dấu ngoặc kép. Chúng tôi sẽ sử dụng nhiều phương pháp khác nhau để xóa dấu ngoặc kép;

Hãy có một chuỗi ví dụ với ba dấu ngoặc kép

Chúng tôi sẽ sử dụng một số phương pháp để xóa tất cả "khỏi chuỗi ví dụ

Chúng tôi sẽ sử dụng một số phương pháp để xóa tất cả " khỏi chuỗi ví dụ

Sử dụng phương thức thay thế()

các str. Phương thức thay thế () nhận hai đối số - chuỗi chúng tôi muốn thay thế và chuỗi thay thế. Trong trường hợp này, chúng ta sẽ thay thế dấu ngoặc kép (") bằng chuỗi rỗng. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

This is a string with quotes

Biểu hiện thông thường

Chúng ta có thể sử dụng biểu thức chính quy để loại bỏ tất cả dấu ngoặc kép khỏi chuỗi. Trước khi bắt đầu sử dụng biểu thức chính quy trong Python, trước tiên chúng ta cần nhập mô-đun re. Hãy hiểu ví dụ sau

Ví dụ -

đầu ra

This is a string with quotes

Chúng tôi nhận được chuỗi mới mà không có bất kỳ dấu ngoặc kép nào trong đó

str. tham gia()

Phương pháp này cũng hữu ích trong việc xóa tất cả các trích dẫn khỏi một chuỗi trong Python. Giải pháp này có cú pháp phức tạp hơn các giải pháp khác và giải pháp này xem xét từng ký tự của chuỗi đã cho và nối thêm từng ký tự, không phải là dấu ngoặc kép cho chuỗi trống

Ví dụ -

đầu ra

This is a string with quotes

Làm thế nào để loại bỏ dấu ngoặc kép xung quanh một chuỗi

Trong các phần trước, chúng ta đã thảo luận về nhiều cách để loại bỏ dấu ngoặc kép khỏi chuỗi. Nhưng có một vấn đề phổ biến hơn, đó là làm cách nào để xóa chỉ các dấu ngoặc kép xung quanh một chuỗi. các str. phương thức strip() nhằm thực hiện một thao tác như vậy

Hãy lấy ví dụ_str từ phần trước và xóa dấu ngoặc kép bằng phương thức strip()

Ví dụ -

đầu ra

Input: "text wrapped in double quotes"
Result: text wrapped in double quotes
0

Phương thức strip() xóa dấu ngoặc kép đầu và cuối khỏi ví dụ_str

Dải () cũng đi kèm với hai phương thức phái sinh - str. lstrip() và str. rstrip(). Cái đầu tiên xóa tất cả các trích dẫn đầu và cái thứ hai xóa tất cả các dấu ngoặc kép

Ví dụ -

đầu ra

Input: "text wrapped in double quotes"
Result: text wrapped in double quotes
1

Phần kết luận

Hướng dẫn này bao gồm nhiều cách khác nhau để xóa dấu ngoặc kép khỏi chuỗi trong Python. Trước tiên, chúng tôi đã giải thích cách xóa tất cả các trích dẫn khỏi một chuỗi bằng một số phương thức khác nhau - str. thay thế (), str. tham gia() và lại. phụ(). Sau đó, chúng tôi đã giải thích str. phương thức strip(), cũng như các dẫn xuất của nó str. lstrip() và rstrip()