Hướng dẫn get substring between two characters python - lấy chuỗi con giữa hai ký tự python

from timeit import timeit
from re import search, DOTALL


def partition_find(string, start, end):
    return string.partition(start)[2].rpartition(end)[0]


def re_find(string, start, end):
    # applying re.escape to start and end would be safer
    return search(start + '(.*)' + end, string, DOTALL).group(1)


def index_find(string, start, end):
    return string[string.find(start) + len(start):string.rfind(end)]


# The wikitext of "Alan Turing law" article form English Wikipeida
# https://en.wikipedia.org/w/index.php?title=Alan_Turing_law&action=edit&oldid=763725886
string = """..."""
start = '==Proposals=='
end = '==Rival bills=='

assert index_find(string, start, end) \
       == partition_find(string, start, end) \
       == re_find(string, start, end)

print('index_find', timeit(
    'index_find(string, start, end)',
    globals=globals(),
    number=100_000,
))

print('partition_find', timeit(
    'partition_find(string, start, end)',
    globals=globals(),
    number=100_000,
))

print('re_find', timeit(
    're_find(string, start, end)',
    globals=globals(),
    number=100_000,
))

Result:

index_find 0.35047444528454114
partition_find 0.5327825636197754
re_find 7.552149639286381

index_find 0.35047444528454114
partition_find 0.5327825636197754
re_find 7.552149639286381
0 chậm hơn gần 20 lần so với
index_find 0.35047444528454114
partition_find 0.5327825636197754
re_find 7.552149639286381
1 trong ví dụ này.

Hướng dẫn get substring between two characters python - lấy chuỗi con giữa hai ký tự python

Hãy xem một ví dụ:

Một chuỗi con là một chuỗi các ký tự là một phần của chuỗi thường được tạo bằng các phương thức như cắt hoặc bằng phương thức Split (). Bây giờ, hãy để Lừa tìm hiểu về các phương pháp mà qua đó chúng ta có thể trích xuất chuỗi con đã cho giữa hai điểm đánh dấu.

Mục lục

  • Trích xuất chuỗi con giữa hai điểm đánh dấu bằng regex
  • Trích xuất chuỗi con giữa hai điểm đánh dấu bằng Find () và Slice ()
  • Trích xuất chuỗi con giữa hai điểm đánh dấu bằng phương thức Split ()
  • Trích xuất chuỗi con giữa hai điểm đánh dấu bằng phương thức phân vùng ():
  • Bản tóm tắt

Phương pháp đầu tiên chúng ta sẽ sử dụng để trích xuất một chuỗi con nhất định giữa hai điểm đánh dấu là bằng cách sử dụng phương thức tìm kiếm () của mô -đun lại. RE là viết tắt của biểu thức chính quy đi kèm với ngôn ngữ lập trình Python.search() method of re module. The re stands for Regular Expression which comes bundled with the Python Programming Language.

Các phương thức RE.Search (mẫu) trả về chuỗi được tìm thấy phù hợp với mẫu đã cho. Nó dừng ngay khi nó định vị chuỗi toán học và trả về chuỗi. Nếu không tìm thấy trận đấu nào thì t trả về không.re.search(pattern) methods returns the string found which matches the given pattern. It stops as soon as it locates the mathcing string and returns the string. If no match s found then t returns None.

Quảng cáo

Hãy xem một ví dụ,

import re

sampleStr = 'ilearncodingfrom;thispointer.com/articles'

try :
    # here ; and / are our two markers 
    # in which string can be found. 
    marker1 = ';'
    marker2 = '/'
    regexPattern = marker1 + '(.+?)' + marker2
    str_found = re.search(regexPattern, sampleStr).group(1)
except AttributeError:
    # Attribute error is expected if string 
    # is not found between given markers
    str_found = 'Nothing found between two markers'

print(str_found)

Đầu ra:

thispointer.com

Vì vậy, trong mã và đầu ra ở trên, bạn có thể thấy rằng bằng cách sử dụng phương thức RE.Search (), chúng tôi đã tìm thấy thành công chuỗi con giữa hai điểm đánh dấu. Chúng tôi cần tìm chuỗi giữa hai điểm đánh dấu (; và /) trong Lấy mẫu biến. Ngoài ra, chúng tôi đang mong đợi AttributionError nếu không có gì được tìm thấy giữa hai điểm đánh dấu đã cho. Vì vậy, nếu không tìm thấy gì giữa hai điểm đánh dấu đã cho (; và /) sau đó thay vì đưa ra một thuộc tính, nó sẽ trả về một thông báo không tìm thấy gì giữa hai điểm đánh dấu.AttributeError if nothing is found between the given two markers. So, if find nothing between the given two markers(; and /) then instead of giving an AttributeError , it will return a message nothing found between two markers.

Trích xuất chuỗi con giữa hai điểm đánh dấu bằng Find () và Slice ()

Trích xuất chuỗi con giữa hai điểm đánh dấu bằng phương thức Split ()
find() method will be used to find the string between two markers. It returns -1 if found nothing. Then we will use slice() method to slice the substring in between given two markers. Lets see an example :

sampleStr = 'ilearncodingfrom;thispointer.com/articles'

# find() method will search the 
# given marker and stores its index 
mk1 = sampleStr.find(';') + 1

# find() method will search the given 
# marker and sotres its index
mk2 = sampleStr.find('/', mk1)

# using slicing substring will be 
# fetched in between markers.
subString = sampleStr[ mk1 : mk2 ]

print(subString)

Đầu ra:

thispointer.com

Vì vậy, trong mã và đầu ra ở trên, bạn có thể thấy rằng bằng cách sử dụng phương thức RE.Search (), chúng tôi đã tìm thấy thành công chuỗi con giữa hai điểm đánh dấu. Chúng tôi cần tìm chuỗi giữa hai điểm đánh dấu (; và /) trong Lấy mẫu biến. Ngoài ra, chúng tôi đang mong đợi AttributionError nếu không có gì được tìm thấy giữa hai điểm đánh dấu đã cho. Vì vậy, nếu không tìm thấy gì giữa hai điểm đánh dấu đã cho (; và /) sau đó thay vì đưa ra một thuộc tính, nó sẽ trả về một thông báo không tìm thấy gì giữa hai điểm đánh dấu.

Để trích xuất chuỗi con giữa hai điểm đánh dấu, chúng tôi sẽ sử dụng kết hợp phương thức Find () và phương pháp cắt ngôn ngữ lập trình Python. Phương thức thefind () sẽ được sử dụng để tìm chuỗi giữa hai điểm đánh dấu. Nó trả về -1 nếu không tìm thấy. Sau đó, chúng tôi sẽ sử dụng phương thức Slice () để cắt phần phụ ở giữa hai điểm đánh dấu. Hãy xem một ví dụ:

Trong mã và đầu ra của phương pháp 2, bạn có thể thấy rằng một kết hợp của phương thức Slice () và các phương thức find () đã được sử dụng để trích xuất chuỗi con giữa hai điểm đánh dấu. Chỉ số các điểm đánh dấu đã được sotred trong var mk1 và mk2 bằng phương thức find (). Sau đó sử dụng cắt lát, chuỗi con đã được tìm nạp và in.
separator : separator used to split the string. If given nothing is provided, then space is the default separator.
maxsplit : a number, which specifies the maximum parts in which the string needs to be splitted. Default value is -1 which specifies there is no limit.

Phương pháp tiếp theo mà chúng ta sẽ sử dụng là phương pháp phân chia ngôn ngữ lập trình python, để trích xuất một chuỗi con nhất định giữa hai điểm đánh dấu. Phương thức Split () trong Python chia chuỗi đã cho từ một dấu phân cách đã cho và trả về một danh sách các chuỗi con được chia.

Nó nhận được hai tham số: - Dấu phân cách: Dấu tách được sử dụng để phân chia chuỗi. Nếu không được cung cấp, thì không gian là bộ phân cách mặc định. Max MaxSplit: một số, chỉ định các phần tối đa trong đó chuỗi cần được chia. Giá trị mặc định là -1 chỉ định không có giới hạn.

sampleStr = 'ilearncodingfrom;thispointer.com/articles'

# here ; and / are our two markers 
# in which string can be found. 
subStr = sampleStr.split(';')[1].split('/')[0]

print(subStr)

Đầu ra:

thispointer.com

Vì vậy, trong mã và đầu ra ở trên, bạn có thể thấy rằng bằng cách sử dụng phương thức RE.Search (), chúng tôi đã tìm thấy thành công chuỗi con giữa hai điểm đánh dấu. Chúng tôi cần tìm chuỗi giữa hai điểm đánh dấu (; và /) trong Lấy mẫu biến. Ngoài ra, chúng tôi đang mong đợi AttributionError nếu không có gì được tìm thấy giữa hai điểm đánh dấu đã cho. Vì vậy, nếu không tìm thấy gì giữa hai điểm đánh dấu đã cho (; và /) sau đó thay vì đưa ra một thuộc tính, nó sẽ trả về một thông báo không tìm thấy gì giữa hai điểm đánh dấu.

Để trích xuất chuỗi con giữa hai điểm đánh dấu, chúng tôi sẽ sử dụng kết hợp phương thức Find () và phương pháp cắt ngôn ngữ lập trình Python. Phương thức thefind () sẽ được sử dụng để tìm chuỗi giữa hai điểm đánh dấu. Nó trả về -1 nếu không tìm thấy. Sau đó, chúng tôi sẽ sử dụng phương thức Slice () để cắt phần phụ ở giữa hai điểm đánh dấu. Hãy xem một ví dụ:

  • Trong mã và đầu ra của phương pháp 2, bạn có thể thấy rằng một kết hợp của phương thức Slice () và các phương thức find () đã được sử dụng để trích xuất chuỗi con giữa hai điểm đánh dấu. Chỉ số các điểm đánh dấu đã được sotred trong var mk1 và mk2 bằng phương thức find (). Sau đó sử dụng cắt lát, chuỗi con đã được tìm nạp và in. : string before the given separator.
  • Phương pháp tiếp theo mà chúng ta sẽ sử dụng là phương pháp phân chia ngôn ngữ lập trình python, để trích xuất một chuỗi con nhất định giữa hai điểm đánh dấu. Phương thức Split () trong Python chia chuỗi đã cho từ một dấu phân cách đã cho và trả về một danh sách các chuỗi con được chia. : separator
  • Nó nhận được hai tham số: - Dấu phân cách: Dấu tách được sử dụng để phân chia chuỗi. Nếu không được cung cấp, thì không gian là bộ phân cách mặc định. Max MaxSplit: một số, chỉ định các phần tối đa trong đó chuỗi cần được chia. Giá trị mặc định là -1 chỉ định không có giới hạn. : string after the given separator.

Hãy xem một ví dụ về phương pháp này:

THÍ DỤ :

Nó nhận được hai tham số: - Dấu phân cách: Dấu tách được sử dụng để phân chia chuỗi. Nếu không được cung cấp, thì không gian là bộ phân cách mặc định. Max MaxSplit: một số, chỉ định các phần tối đa trong đó chuỗi cần được chia. Giá trị mặc định là -1 chỉ định không có giới hạn.

sampleStr = 'ilearncodingfrom;thispointer.com/articles'

before, mk1, after = sampleStr.partition(";")
subStr, mk2, after = after.partition("/")

print(subStr)

Đầu ra:

thispointer.com

Vì vậy, trong mã và đầu ra ở trên, bạn có thể thấy rằng bằng cách sử dụng phương thức RE.Search (), chúng tôi đã tìm thấy thành công chuỗi con giữa hai điểm đánh dấu. Chúng tôi cần tìm chuỗi giữa hai điểm đánh dấu (; và /) trong Lấy mẫu biến. Ngoài ra, chúng tôi đang mong đợi AttributionError nếu không có gì được tìm thấy giữa hai điểm đánh dấu đã cho. Vì vậy, nếu không tìm thấy gì giữa hai điểm đánh dấu đã cho (; và /) sau đó thay vì đưa ra một thuộc tính, nó sẽ trả về một thông báo không tìm thấy gì giữa hai điểm đánh dấu.
irst we partioned the string based on first marker. It splitted the string into three parts i.e. substring before first market, the first marker and the substring after the first marker. We picked the last one i.e. the substring after the first marker. Then we partioned that based on second marker and picked the first entry from returned tuple. This first entry denotes the sbstring before second marker. So as a result we got our substring between two given markers.

Bản tóm tắt

Phương pháp đầu tiên chúng ta sẽ sử dụng để trích xuất một chuỗi con nhất định giữa hai điểm đánh dấu là bằng cách sử dụng phương thức tìm kiếm () của mô -đun lại. RE là viết tắt của biểu thức chính quy đi kèm với ngôn ngữ lập trình Python.python –version in your terminal.

Làm thế nào để tôi tìm thấy phần phụ giữa hai ký tự trong Python?

Sử dụng LOP index () + để trích xuất chuỗi giữa hai chuỗi con.Trong đó, chúng tôi nhận được các chỉ số của cả hai chuỗi con bằng cách sử dụng index (), sau đó một vòng lặp được sử dụng để lặp trong chỉ mục để tìm chuỗi cần thiết giữa chúng. to extract string between two substrings. In this, we get the indices of both the substrings using index(), then a loop is used to iterate within the index to find the required string between them.

Làm cách nào để trích xuất một chuỗi con trong Python?

Bạn có thể trích xuất một chuỗi con trong phạm vi bắt đầustart <= x < stop with [start:step] . If start is omitted, the range is from the beginning, and if end is omitted, the range is to the end. You can also use negative values. If start > end , no error is raised and an empty character '' is extracted.

Làm thế nào để bạn tìm thấy chuỗi giữa hai ký tự?

Để có được một chuỗi con giữa hai ký tự: lấy chỉ mục sau lần xuất hiện đầu tiên của nhân vật.Nhận chỉ số của sự xuất hiện cuối cùng của nhân vật.Sử dụng chuỗi.phương thức cắt () để có được một chuỗi con giữa 2 ký tự.Get the index after the first occurrence of the character. Get the index of the last occurrence of the character. Use the String. slice() method to get a substring between the 2 characters.

Làm thế nào để bạn chia một chuỗi bằng một nhân vật trong Python?

Phương thức phân chia chuỗi python () Phương thức phân tách một chuỗi thành một danh sách.Bạn có thể chỉ định phân tách, dấu phân cách mặc định là bất kỳ khoảng trắng nào.Lưu ý: Khi MaxSplit được chỉ định, danh sách sẽ chứa số lượng phần tử được chỉ định cộng với một.The split() method splits a string into a list. You can specify the separator, default separator is any whitespace. Note: When maxsplit is specified, the list will contain the specified number of elements plus one.