目錄
理解問題
輸入輸出場景
使用迭代
範例
輸出
使用正規表示式模組 Search()
使用 Regex 模組 Findall()
使用 Isalnum() 方法
結論
首頁 後端開發 Python教學 Python程式提取字串直到第一個非字母數字字符

Python程式提取字串直到第一個非字母數字字符

Sep 11, 2023 pm 12:49 PM
Python直式程式設計 字串提取 非字母數字字符

Python程式提取字串直到第一個非字母數字字符

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
登入後複製
登入後複製

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< /b>” 符合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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

AssertionError:如何解決Python斷言錯誤? AssertionError:如何解決Python斷言錯誤? Jun 25, 2023 pm 11:07 PM

Python中的斷言(assert)是程式設計師用來偵錯程式碼的有用工具。它用於驗證程式的內部狀態是否滿足預期,並在這些條件為假時引發一個斷言錯誤(AssertionError)。在開發過程中,測試和偵錯階段都使用斷言來檢查程式碼的狀態和預期結果是否相符。本文將討論AssertionError的原因、解決方法以及如何在程式碼中正確使用斷言。斷言錯誤的原因斷言錯誤通

Python中的分層抽樣技巧 Python中的分層抽樣技巧 Jun 10, 2023 pm 10:40 PM

Python中的分層抽樣技巧抽樣是統計學中常用的資料收集方法,它可以從資料集中選擇一部分樣本進行分析,以此推斷出整個資料集的特徵。在大數據時代,數據量龐大,使用全樣本進行分析既耗費時間又不夠經濟實際。因此,選擇合適的抽樣方法可以提高資料分析效率。本文主要介紹Python中的分層抽樣技巧。什麼是分層抽樣?在抽樣中,分層抽樣(stratifiedsampl

如何使用Python在Linux中進行腳本編寫和執行 如何使用Python在Linux中進行腳本編寫和執行 Oct 05, 2023 am 11:45 AM

如何使用Python在Linux中進行腳本編寫和執行在Linux作業系統中,我們可以使用Python編寫並執行各種腳本。 Python是一種簡潔而強大的程式語言,它提供了豐富的函式庫和工具,使得腳本編寫變得更加簡單和有效率。以下我們將介紹在Linux中如何使用Python進行腳本編寫和執行的基本步驟,同時提供一些具體的程式碼範例來幫助你更好地理解和運用。安裝Pytho

PHP 正規表示式:如何從字串中提取特定開頭和結尾的子字串 PHP 正規表示式:如何從字串中提取特定開頭和結尾的子字串 Jun 22, 2023 am 09:10 AM

PHP是一種流行的程式語言,擁有強大的正規表示式功能。正規表示式是一種強大的字串處理工具,使用它可以輕鬆地從字串中提取想要的內容。本文將介紹PHP正規表示式的使用方法,特別是如何從字串中提取特定開頭和結尾的子字串。如果你想學習如何使用PHP正規表示式來提取子字串,那麼這篇文章將為你提供幫助。首先,讓我們回顧一下正規表示式的基礎知識。正規表

Python開發漏洞掃描器的方法 Python開發漏洞掃描器的方法 Jul 01, 2023 am 08:10 AM

如何透過Python開發漏洞掃描器概述在當今網路安全威脅增加的環境下,漏洞掃描器成為了保護網路安全的重要工具。 Python是一種流行的程式語言,簡潔易讀且功能強大,適合開發各種實用工具。本文將介紹如何使用Python開發漏洞掃描器,為您的網路提供即時保護。步驟一:確定掃描目標在開發漏洞掃描器之前,您需要確定要掃描的目標。這可以是您自己的網路或任何您有權限測

Python中sqrt()函數用法 Python中sqrt()函數用法 Feb 21, 2024 pm 03:09 PM

Python中sqrt()函數用法及程式碼範例一、sqrt()函數的功能及介紹在Python程式設計中,sqrt()函數是math模組中的一個函數,其功能是計算一個數的平方根。平方根是指一個數與自己相乘等於這個數的平方,即x*x=n,則x就是n的平方根。程式中可以使用sqrt()函數來實現對平方根的計算。二、sqrt()函數的使用方法在Python中,sq

Python程式實戰:利用百度地圖API產生靜態地圖功能的方法 Python程式實戰:利用百度地圖API產生靜態地圖功能的方法 Jul 30, 2023 pm 09:05 PM

Python程式實戰:利用百度地圖API產生靜態地圖功能的方法導語:在現代社會中,地圖已成為人們生活中不可缺少的一部分。在使用地圖時,我們常常需要取得特定區域的靜態地圖,以便在網頁、行動應用程式或報告中進行展示。本文將介紹如何利用Python程式語言和百度地圖API來產生靜態地圖,並提供相關的程式碼範例。一、準備工作要實現利用百度地圖API產生靜態地圖的功能,我

教你使用Python程式實現百度影像辨識介面的對接,實現影像辨識功能 教你使用Python程式實現百度影像辨識介面的對接,實現影像辨識功能 Aug 25, 2023 pm 03:10 PM

教你使用Python程式實現百度影像辨識介面的對接,實現影像辨識功能在電腦視覺的領域中,影像辨識技術是非常重要的一項技術。而百度提供了一套強大的圖像識別接口,透過該接口,我們可以方便地實現圖像的分類、標籤、人臉識別等功能。本篇文章將教你使用Python程式語言,透過對接百度影像辨識接口,實現影像辨識的功能。首先,我們需要在百度開發者平台上創建一個應用,並獲

See all articles