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在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

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个小时来教计算机小白一些编程知识,你会选择教些什么�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),