Skip to content

SLICE WITH STRING PATTERNS

Python
#!/usr/bin/env python3
"""
SLICE WITH STRING PATTERNS
Common string slicing patterns and tricks
"""

print("=== Extract Substrings by Position ===")
text = "Hello World Python"

first_word = text[:5]
last_word = text[-6:]
middle = text[6:11]

print(f"Text: '{text}'")
print(f"First 5 chars: '{first_word}'")
print(f"Last 6 chars: '{last_word}'")
print(f"Middle (6-11): '{middle}'")

print("\n=== URL Parsing with Slices ===")
url = "https://example.com/path/file.html"

protocol = url[:5]  # "https"
domain_start = url.find("//") + 2
domain_end = url.find("/", domain_start)
domain = url[domain_start:domain_end]
path = url[domain_end:]

print(f"URL: {url}")
print(f"Protocol: {protocol}")
print(f"Domain: {domain}")
print(f"Path: {path}")

print("\n=== Extract Phone Number Parts ===")
phone = "123-456-7890"

area_code = phone[:3]
prefix = phone[4:7]
line = phone[8:]

print(f"Phone: {phone}")
print(f"Area code: {area_code}")
print(f"Prefix: {prefix}")
print(f"Line number: {line}")

print("\n=== Credit Card Masking ===")
card_number = "1234567812345678"

# Show only last 4 digits
masked = "*" * (len(card_number) - 4) + card_number[-4:]
print(f"Original: {card_number}")
print(f"Masked: {masked}")

print("\n=== Extract Date Components ===")
date = "2024-11-17"

year = date[:4]
month = date[5:7]
day = date[8:10]

print(f"Date: {date}")
print(f"Year: {year}")
print(f"Month: {month}")
print(f"Day: {day}")

print("\n=== Email Username and Domain ===")
email = "user@example.com"

at_pos = email.find("@")
username = email[:at_pos]
domain = email[at_pos+1:]

print(f"Email: {email}")
print(f"Username: {username}")
print(f"Domain: {domain}")

print("\n=== Extract File Parts ===")
filepath = "/home/user/documents/report.pdf"

# Get filename (after last /)
last_slash = filepath.rfind("/")
filename = filepath[last_slash+1:]

# Get directory (before last /)
directory = filepath[:last_slash]

# Get extension (after last .)
last_dot = filename.rfind(".")
extension = filename[last_dot+1:] if last_dot > 0 else ""
name_only = filename[:last_dot] if last_dot > 0 else filename

print(f"Path: {filepath}")
print(f"Directory: {directory}")
print(f"Filename: {filename}")
print(f"Name: {name_only}")
print(f"Extension: {extension}")