πŸ” Как Π½Π°ΠΉΡ‚ΠΈ подстроку Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простой способ!

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ подстроку Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ `find()` ΠΈΠ»ΠΈ `index()` для строк. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки Π² строку. Если подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, Ρ‚ΠΎ `find()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -1, Π° `index()` Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError.

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find()
string = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
substring = "ΠΌΠΈΡ€"
index = string.find(substring)
print(index)  # Π’Ρ‹Π²ΠΎΠ΄: 7

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° index()
string = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
substring = "ΠΌΠΈΡ€"
index = string.index(substring)
print(index)  # Π’Ρ‹Π²ΠΎΠ΄: 7
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π½Π°ΠΉΡ‚ΠΈ подстроку Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с тСкстовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Python, часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ подстроку Π² строкС. НачнСм с постановки ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ рассмотрСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ.

1. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find()

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ способом Π½Π°ΠΉΡ‚ΠΈ подстроку Π² строкС являСтся использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find(). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ:

string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ подстроку"
substring = "подстроку"
position = string.find(substring)
print(f"ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: {position}")

ΠœΠ΅Ρ‚ΠΎΠ΄ find() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки Π² строку. Если подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ -1. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ индСксация начинаСтся с 0.

2. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° index()

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ подстроку, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ случай, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° отсутствуСт Π² строкС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ index(). Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° find():

string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ подстроку"
substring = "подстроку"
try:
    position = string.index(substring)
    print(f"ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: {position}")
except ValueError:
    print("ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°")

ΠœΠ΅Ρ‚ΠΎΠ΄ index() Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки Π² строку, Π½ΠΎ Ссли подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±Π»ΠΎΠΊ try-except, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ дСйствия.

3. ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТный поиск подстроки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния. Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ re, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСгулярными выраТСниями. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования:

import re

string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ подстроку"
substring = "подстроку"
matches = re.finditer(substring, string)

for match in matches:
    print(f"ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: {match.start()}")

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ finditer() ΠΈΠ· модуля re, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Match. ΠœΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ соотвСтствия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° start() Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Match.

4. ИспользованиС срСзов (slices)

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ всС вхоТдСния подстроки Π² строкС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… индСксы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСзы (slices). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ тСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ подстроку"
substring = "подстроку"

positions = [i for i in range(len(string)) if string[i:i + len(substring)] == substring]
print(f"ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° позициях: {positions}")

ΠœΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ индСксам строки ΠΈ провСряСм, Ρ€Π°Π²Π½Π° Π»ΠΈ подстрока Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ искомой подстрокС. Если Π΄Π°, добавляСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² список positions. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список всСх Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ нСсколько способов поиска подстроки Π² Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π£Ρ€ΠΎΠΊΠΈ Python / Как Π½Π°ΠΉΡ‚ΠΈ символ Π² строкС

Поиск подстроки Π² строкС Π½Π° Python #python

Π£Ρ€ΠΎΠΊ 10 Π‘Ρ‚Ρ€ΠΎΠΊΠΈ: индСксы ΠΈ срСзы Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ€” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ args Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ простым языком

πŸ”₯ 🐍 Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простыС инструкции для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!

πŸ”₯ Как Π² Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку πŸš€

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ подстроку Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простой способ!

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ класса Π² Python: инструкция ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ” Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ с нулями Π² Python? Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования построСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

15 бСсцСнных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΊΠΎΠ³Π΄Π° дСнь ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍