Hướng dẫn remove everything between brackets python - loại bỏ mọi thứ giữa dấu ngoặc, python

Bạn có thể sử dụng chức năng Re.Sub.

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("([\(\[]).*?([\)\]])", "\g<1>\g<2>", x)
'This is a sentence. () []'

Nếu bạn muốn xóa [] và (), bạn có thể sử dụng mã này:

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '

Quan trọng: Mã này sẽ không hoạt động với các biểu tượng lồng nhau

Giải trình

Các nhóm Regex đầu tiên ( hoặc [ thành nhóm 1 (bằng cách xung quanh nó với dấu ngoặc đơn) và ) hoặc ] với nhóm 2, khớp với các nhóm này và tất cả các ký tự nằm giữa chúng. Sau khi kết hợp, phần phù hợp được thay thế bằng nhóm 1 và 2, để lại chuỗi cuối cùng không có gì bên trong ngoặc. Regex thứ hai là tự giải thích từ điều này -> khớp với mọi thứ và thay thế với chuỗi trống.

- Được sửa đổi từ bình luận của Ajay Thomas

Trong bài viết này, chúng tôi sẽ học cách xóa nội dung bên trong ngoặc mà không cần xóa dấu ngoặc trong Python.

Examples:

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()

Chúng ta có thể xóa nội dung bên trong dấu ngoặc mà không cần xóa dấu ngoặc trong 2 phương thức, một trong số chúng là sử dụng các phương thức sẵn có từ thư viện RE và phương pháp thứ hai là thực hiện chức năng này bằng cách lặp chuỗi bằng cách sử dụng một vòng lặp cho vòng lặp

Phương pháp 1: Chúng tôi sẽ sử dụng phương thức thư viện RE (biểu thức chính quy). & Nbsp;We will use sub() method of re library (regular expressions). 

sub (): Chức năng của phương thức sub () là nó sẽ tìm thấy mẫu cụ thể và thay thế nó bằng một số chuỗi.The functionality of sub() method is that it will find the specific pattern and replace it with some string.

Phương pháp này sẽ tìm thấy chuỗi con có trong giá đỡ hoặc dấu ngoặc đơn và thay thế nó bằng các giá đỡ trống.

Cách tiếp cận :

  1. Nhập thư viện Re
  2. Bây giờ tìm chuỗi phụ có mặt trong ngoặc và thay thế bằng () bằng phương thức sub ().() using sub() method.
  3. Chúng ta cần chuyển phương thức Sub () với 2 đối số đó là mẫu và chuỗi được thay thế bằng.pattern and string to be replaced with.
  4. In chuỗi.

Trong mã dưới đây \ (.*? \) Đại diện cho biểu thức chính quy để tìm các dấu ngoặc chứa một số nội dung. Các dấu ngoặc () có một số ý nghĩa đặc biệt trong biểu thức thông thường trong python vì vậy phản ứng dữ dội \ được sử dụng để thoát khỏi ý nghĩa đó. & Nbsp;\(.*?\) represents the regular expression for finding the brackets containing some content. The brackets () have some special meaning in regular expression in python so Backlash \ is used to escape that meaning. 

Python3

import re

string____1010

string

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
4
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
5
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
6
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
7
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
8

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
9
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
0

Độ phức tạp về thời gian: O (2^m + n). O(2^m + n).

Trong đó m là kích thước của regex và n là kích thước của chuỗi. Ở đây, phương thức phụ () sẽ mất 2^m thời gian để tìm mẫu bằng regex và o (n) để lặp qua chuỗi và thay thế bằng cách ().“()”.

Phương pháp 2: Trong phương pháp này, chúng ta sẽ lặp qua chuỗi và nếu ký tự được lặp lại không có ở giữa dấu ngoặc đơn thì ký tự sẽ được thêm vào chuỗi kết quả.In this method, we will iterate through the string and if the character that is being iterated is not present in between the parenthesis then the character will be added to the resultant string.

Nếu có dấu ngoặc đơn mở hoặc đóng có trong chuỗi thì dấu ngoặc đơn sẽ được thêm vào chuỗi kết quả nhưng chuỗi ở giữa sau đó không được thêm vào chuỗi kết quả.

Approach:

  1. Lặp lại vòng lặp cho mỗi ký tự trong chuỗi.
  2. Nếu một ‘(‘ hoặc ‘) xuất hiện trong chuỗi, chúng ta sẽ thêm nó vào chuỗi kết quả.‘(‘ or ‘)’ appears in the string we will add it to the result string.
  3. Nếu số dấu ngoặc đơn trong chuỗi bằng 0 thì thêm ký tự vào chuỗi kết quả.
  4. Ở đây nếu số ngoặc đơn lớn hơn 0, nó chỉ ra rằng ký tự hiện tại đang được lặp lại ở giữa hai dấu ngoặc đơn
  5. In chuỗi kết quả.

Python3

string

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
3

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
6

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
7
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
9

(0 (1(2 (3

(4(5 (1

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
010 (9[0

[1[2

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
7[5 [6

[1

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4[5 (9

(4)4 )5______10

[1

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4[5 )8

[1[2

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0
Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
7import2 [6

(4)4 import6 ]1

[1

Input: (hai)geeks
Output: ()geeks

Input: (geeks)for(geeks)
Output: ()for()
4[5
>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
0 re2

>>> import re 
>>> x = "This is a sentence. (once a day) [twice a day]"
>>> re.sub("[\(\[].*?[\)\]]", "", x)
'This is a sentence.  '
9re4

Độ phức tạp về thời gian: O (N).O(n).

Ở đây n là độ dài của chuỗi. Trong mã, chúng tôi đang lặp lại qua chuỗi và nối thêm nội dung bên ngoài dấu ngoặc đơn để nó chỉ mất thời gian o (n).


Làm thế nào để bạn loại bỏ nội dung khỏi dấu ngoặc trong Python?

Sử dụng re.sub () để xóa văn bản trong mục tiêu phụ (mẫu, thay thế, chuỗi) bằng mẫu làm biểu thức chính quy r "\ ([^()]*\)" và thay thế làm "" để xóa văn bản trong dấu ngoặc đơn trong chuỗi . sub() to remove text within parentheses sub(pattern, replacement, string) with pattern as the regular expression r"\([^()]*\)" and replacement as "" to remove text within parentheses in string .

Làm cách nào để xóa văn bản giữa các dấu ngoặc trong một chuỗi trong Python?

Phương pháp 1: Chúng tôi sẽ sử dụng phương thức thư viện RE (biểu thức chính quy). sub (): Chức năng của phương thức sub () là nó sẽ tìm thấy mẫu cụ thể và thay thế nó bằng một số chuỗi. Phương pháp này sẽ tìm thấy chuỗi con có trong giá đỡ hoặc dấu ngoặc đơn và thay thế nó bằng các giá đỡ trống.use sub() method of re library (regular expressions). sub(): The functionality of sub() method is that it will find the specific pattern and replace it with some string. This method will find the substring which is present in the brackets or parenthesis and replace it with empty brackets.

Làm cách nào để loại bỏ nhiều dấu ngoặc khỏi danh sách trong Python?

Tuyên bố một danh sách các yếu tố cho biến.Sử dụng chức năng tham gia để tham gia tất cả các yếu tố và sử dụng dấu phẩy để tách các biến.cho vòng lặp để loại bỏ dấu ngoặc ...
Sử dụng chức năng tham gia để xóa dấu ngoặc khỏi danh sách trong Python.....
Sử dụng cho vòng lặp để xóa dấu ngoặc khỏi danh sách trong Python ..

Làm thế nào để bạn xóa mọi thứ sau một nhân vật trong Python?

Để loại bỏ mọi thứ sau một ký tự trong một chuỗi:..
Sử dụng str.phương thức chia () để chia chuỗi trên dấu phân cách ..
Truy cập phần tử danh sách tại Index 0 để nhận mọi thứ trước khi phân tách ..
Tùy chọn, sử dụng toán tử bổ sung (+) để thêm dấu phân cách ..