Python 字串是表示資訊或資料的字元序列。普通字串可以包含用單引號或雙引號括起來的各種字符,但字母數字字串僅包含數字和字母。 字母數字和非字母數字字串都在各種場景中使用和應用,包括密碼保護、資料處理和驗證、格式化等。
可以識別和提取特定模式。我們也可以使用這些類型的字串提供不同的組合。我們將根據這些字串執行操作。我們的任務是提取字串,直到遇到第一個非字母數字字元。
理解問題
在遇到非字母數字字元之前,我們必須從原始字串中提取子字串。讓我們透過一個例子來理解這一點。
輸入輸出場景
讓我們考慮一個具有以下值的字典 -
Input: Inp_STR = "Sales18@22!Roam"
給定的字串由字母、數字和特殊字元組成。一旦遇到非字母數字字符,我們就必須檢索子字串。
Output: Sales18
我們可以看到,從原始字串中返回了一個子字串“Sales18”,因為在此之後遇到了非字母數字字符,即“@”。現在我們已經理解了問題陳述,讓我們討論一些解決方案。
使用迭代
這是根據提供的條件提取字串的基本且更簡單的方法。我們將傳遞一個字串並創建一個新變量,該變量將儲存所有字母數字字符,即字母(大寫和小寫)和數字。之後,我們將遍歷原始字串並迭代每個字元。
我們將建立一個條件來檢查原始字串中的字元是否是字母數字。一旦遇到非字母數字字符,循環將中斷並返回子字串。
範例
以下是提取字串直到第一個非字母數字字元的範例 -
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = "" alphaNum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" for x in Inp_STR: if x not in alphaNum: break else: ExSTR += x print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
輸出
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
使用正規表示式模組 Search()
Regex 模組或「re」模組是一個強大的程式設計工具,用於搜尋和匹配模式。這些模式以獨特的表達式的形式傳遞。使用此模組,我們將檢測原始字串中的非字母數字模式並檢索第一次遇到的序列。我們使用「search()」函數在字串中搜尋由表達式「\W 」表示的非字母數字模式。
「\W」表示非字母數字類,「 」設定非字母數字字元的連續匹配邏輯。 “.start()”方法傳回符合子字串的起始索引,該索引值將用於檢索所需的子字串。
範例
以下是一個範例 -
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.search(r"\W+", Inp_STR).start() print(f"The 1st non-alphanumeric character is encountered at: {ExSTR}") ExSTR = Inp_STR[ : ExSTR] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
輸出
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
使用 Regex 模組 Findall()
這是提取字串直到遇到第一個非字母數字字元的另一種方法。在這個方法中,我們將使用 re 模組中的「findall()」函數來尋找所有出現的由字母數字字元組成的子字串。
將獲得匹配子字串的列表,我們將使用「0」索引值檢索第一個子字串。我們將使用正規表示式:“[\dA-Za-z]*”,它表示一行中的零個或多個字母數字字元。
正規表示式符號「\d」符合0到9之間的任何數字,「A-Z」符合A到Z之間的任何大寫字母,「 a-z” 符合a 到z 之間的任何小寫字母。
範例
以下是一個範例 -
import re Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") ExSTR = re.findall(r"[\dA-Za-z]*", Inp_STR)[0] print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
輸出
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
使用 Isalnum() 方法
在這個方法中,我們將迭代原始字串中每個字元的索引,並建立一個條件來檢查索引「x」處的字元是否不是字母數字。這是在「isalnum()」方法的幫助下完成的,該方法確定字串的字母數字性質。之後,我們將使用列表切片來提取字串,直到第一個字母數字字元。
範例
以下是一個範例 -
Inp_STR = "Sales18@22Roam" print(f"The original string is: {Inp_STR}") for x in range(len(Inp_STR)): if not Inp_STR[x].isalnum(): ExSTR = Inp_STR[:x] print(f"The 1st non-alphanumeric character is encountered at: {x}") break else: ExSTR = Inp_STR print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
輸出
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
結論
在本文中,我們討論了一些高效且最佳化的解決方案,用於在遇到第一個非字母數字字元時從字串中提取子字串。我們了解簡單和粗暴的解決方案以及先進和優化的解決方案。我們使用正規表示式模組並使用其“search()”和“findall()”函數來提取相關字串。最後,我們討論了另一個基於列表切片的解決方案,其中涉及使用「isalnum()」方法。
以上是Python程式提取字串直到第一個非字母數字字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

如何解決jieba分詞在景區評論分析中的問題?當我們在進行景區評論分析時,往往會使用jieba分詞工具來處理文�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境