首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python regex:获取所有非数字,分组,后跟或不跟空格

正则表达式(Regular Expression)是一种用于匹配、查找和替换文本的强大工具。在Python中,可以使用re模块来操作正则表达式。

针对问题中的需求,获取所有非数字并进行分组,后跟或不跟空格,可以使用以下正则表达式:

代码语言:txt
复制
import re

text = "abc 123 def 456 ghi"
pattern = r"(\D+)(\s*)"

matches = re.findall(pattern, text)
for match in matches:
    print("非数字组:", match[0])
    print("空格组:", match[1])

解释正则表达式:

  • (\D+):匹配一个或多个非数字字符,并将其作为第一个分组。
  • (\s*):匹配零个或多个空格字符,并将其作为第二个分组。

示例输出:

代码语言:txt
复制
非数字组: abc 
空格组:  
非数字组: def 
空格组:  

这个正则表达式的应用场景包括但不限于:

  • 文本处理:可以用于提取非数字字符,并进行相应的处理。
  • 数据清洗:可以用于过滤掉文本中的数字,只保留非数字部分。
  • 字符串分割:可以根据非数字字符进行字符串的分割操作。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mps
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正则表达式

,它是基于行过滤的 grep 指令后不跟任何参数,默认使用基本正则 grep 指令后跟 “-E” 参数,使用扩展正则,与 egrep 等效 grep 指令后跟 “-P” 参数,使用 Perl 正则 sed...指令后不跟任何参数,使用基本正则,默认使用基本正则 指令后跟 “-r” 参数,使用扩展正则 awk 默认使用扩展正则 基本正则表达式 字符匹配 字符 说明 备注 ....:] 匹配可打印的空白字符 [:print:] 匹配可打印字符 [:punct:] 匹配任意标点符号 [^[:alpha:]] 匹配单个字母字符 [^[:digit:]] 匹配单个数字字符...\> 匹配整个单词 \B 匹配单词边界,与 \b 相反 分组引用 字符 说明 备注 \( \) 分组 $1,$2 引用 在分组中,一个括号为一组,$1 开始,$2,$3… 扩展正则表达式 字符匹配...0-9的数字 \D 匹配任意单个数字字符 \t 匹配单个横向制表符,相当于一个tab键 \s 匹配单个空白字符,包括空格、tab键 \S 匹配单个空白字符 \n 匹配换行符 \w 匹配

7210

re:Python中正则表达式的处理与应用

不过这里是返回的match字符串,并不是和上面一个返回的一个Match示例,我现在想要获取所有多重匹配结果的索引位置怎么办?...转义码 含义 \d 匹配数字 \D 匹配数字 \s 匹配空白符(制表符,空格,换行等) \S 匹配空白符 \w 字母数字 \W 字母数字 这里,我们来分别匹配看看效果,具体代码如下所示: import...=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!pattern ) 后向否定断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!.../d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?<=pattern ) 前向断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?...19)99 与不跟在 19 后面的 99 的实例匹配 自引用表达式 在前面,我们学习了分组的知识,但假如有两个分组完全一样,我们还写两遍不成?

20620
  • grep中使用d匹配数字不成功的原因

    、PREs 正则表达式 egrep 指令后不跟任何参数,则表示要使用 “EREs” egrep 指令后跟 “-P" 参数,则表示要使用 “PREs" 3)grep 与 egrep 正则匹配文件...Extended RegEx python RegEx Perl regEx 转义 \ \ \ \ ^ 匹配行首,例如'^dog'匹配以字符串dog开头的行(注意:awk 指令中,'^'则是匹配字符串的开始...(等价于 [0-9]) 不支持 不支持 \d \d \D 匹配数字字符(等价于 [^0-9]) 不支持 不支持 \D \D \S 匹配任何空白字符(等价于[^\f\n\r\t\v]) 不支持 不支持...\S \S \s 匹配任何空白字符,包括空格、制表符、换页符等等(等价于[ \f\n\r\t\v]) 不支持 不支持 \s \s \W 匹配任何单词字符 (等价于[^A-Za-z0-9_]) \W...表示对所获取的匹配的引用 不支持 \num \num [:alnum:] 匹配任何一个字母数字([A-Za-z0-9]),例如:'[[:alnum:]] ' [:alnum:] [:alnum:]

    4K10

    资源 | 正则表达式的功法大全

    (https://regex101.com/r/cO8lqs/3) a[bc] 匹配在“a”后面跟着“b”“c”的字符串 字符类:d、d、s 和 . d 匹配数字型的单个字符...例如D 将执行与d 完全相反的匹配方法: D 匹配单个数字型的字符 -> Try it!...:) 对于从字符串数据中抽取信息非常重要,我们可以使用 Python 等不同的编程语言实现这一功能。从多个分组中捕获的多个匹配项将以经典的数组形式展示:我们可以使用匹配结果的索引访问它们的值。...(https://regex101.com/r/cO8lqs/10) 记住在方括弧内,所有特殊字符(包括反斜杠)都会失去它们应有的意义。...(https://regex101.com/r/cO8lqs/25) 如插入符号那样表示一个锚点(它与$和^相同)来匹配位置,其中一边是一个单词符号(如w),另一边不是单词符号(例如它可能是字符串的起始点空格符号

    1.6K40

    资源 | 正则表达式的功法大全,做NLP再也不怕搞不定字符串了

    例如\D 将执行与\d 完全相反的匹配方法: \D 匹配单个数字型的字符 -> Try it!...(https://regex101.com/r/cO8lqs/17) 捕获性圆括号 () 和捕获性圆括弧 (?...:) 对于从字符串数据中抽取信息非常重要,我们可以使用 Python 等不同的编程语言实现这一功能。从多个分组中捕获的多个匹配项将以经典的数组形式展示:我们可以使用匹配结果的索引访问它们的值。...(https://regex101.com/r/cO8lqs/10) 记住在方括弧内,所有特殊字符(包括反斜杠\)都会失去它们应有的意义。...(https://regex101.com/r/cO8lqs/25) \b 如插入符号那样表示一个锚点(它与$和^相同)来匹配位置,其中一边是一个单词符号(如\w),另一边不是单词符号(例如它可能是字符串的起始点空格符号

    1.6K80

    正则表达式快速入门

    [^] 匹配方括号中原子以外的任意字符 \b 匹配单词的边界 \B 匹配单词边界意外的部分 \d 匹配一个数字字符。 \D 匹配一个数字字符。...$ 此外,还可以随时到百度查阅查看站长工具:http://tool.chinaz.com/regex/ 最近浏览了不少语言,包括python(1989),ruby,perl,php等,大体上来看,...\*等特殊符号) 倒杠后面跟小w, 数字字母来表示; (\w跟数字字母;\d跟数字) 倒杠后面跟小d, 只有数字来表示; 倒杠后面跟小a, 报警符号嘀一声; 倒杠后面跟小b, 单词分界退格;...倒杠后面跟小t, 制表符号很明了; 倒杠后面跟小r, 回车符号知道了; 倒杠后面跟小s, 空格符号很重要; 小写跟罢跟大写,多得实在不得了; 倒杠后面跟大W, 字母数字靠边站; 倒杠后面跟大S...是取反的意思; 后面不跟这一串,统统符合来报到; ("\w*d(?!

    1.3K50

    正则表达式教程:实例速查

    正则表达式(regex regexp)在文本信息提取方面是非常有用的工具,通过查询一个多个特定搜索模式的匹配实现(例如,特定的ASCIIunicode字符序列)。...最有趣的一点是,只要学过正则表达式的语法,在目前几乎所有编程语言中都可以应用正则表达式(JavaScript、Java、VB、C/C++、C#、Python、Perl、Ruby、Delphi、R、Tcl...匹配ab后有零个一个为c的字符串 abc{2} 匹配ab后有2个 c的字符串 abc{2,} 匹配ab后有2个 c更多个c的字符串 abc{2,5} 匹配ab后跟2到5个c的字符串 a(bc)* 匹配...a后面跟零个多个重复的bc序列的字符串 a(bc){2,5} 匹配a后面跟2个到5个重复的bc序列的字符串 运算符——|[] a(b|c) 匹配a后跟bc的字符串 - >试试吧!...\D 匹配一个数字字符 - >试试吧! 为了按字面意思理解,你必须使用反斜杠“\”来转义字符^.[$()|*+?{\,因为它们具有特殊含义。

    1.6K30

    正则表达式入门

    1.什么是正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexpRE),计算机科学的一个概念...除换行符外的所有字符 \w 匹配所有字母数字,等同于[a-zA-Z0-9] \W 匹配所有字母数字,即符号,等同于[^\w] \d 匹配数字: [0-9] \D 匹配数字:[^\d] \s 匹配所有空格字符...,等同于: [\t\n\f\r\p{Z}] \S 匹配所有空格字符: [^\s] \f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个会车符 \t 匹配一个制表符 5....\sfat) 匹配 The 和 the, 且其后不跟着(空格)fat. ? 6.3 正向后顾 定义一个正向后顾要使用(),在括号内部使用一个问好、小于号和等号?...用于筛选所有匹配结果, 筛选条件为 其前不跟随着断言中定义的格式. 例如, 表达式 (?<!(T|t)he\s)(cat) 匹配 cat, 且其前不跟着 The the. ?

    91620

    正则表达式学习

    “Regular expression”这个词比较拗口,我们常使用缩写的术语“regex“regexp”。...在线练习 *字符和.字符搭配可以匹配所有的字符.*。 *和表示匹配空格的符号\s连起来用,如表达式\s*cat\s*匹配0更多个空格开头和0更多个空格结尾的cat字符串。...除换行符外的所有字符 \w 匹配所有字母数字,等同于 [a-zA-Z0-9_] \W 匹配所有字母数字,即符号,等同于: [^\w] \d 匹配数字: [0-9] \D 匹配数字: [^\d] \s...匹配所有空格字符,等同于: [\t\n\f\r\p{Z}] \S 匹配所有空格字符: [^\s] \f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个回车符 \t 匹配一个制表符 \v 匹配一个垂直制表符...用于筛选所有匹配结果,筛选条件为 其前不跟随着断言中定义的格式。 例如,表达式 (?<!(T|t)he\s)(cat) 匹配 cat,且其前不跟着 The the。 “(?<!

    1.7K20

    Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配

    您可能不知道某个企业的确切电话号码,但如果您住在美国加拿大,您会知道它是三位数字后跟一个连字符,然后是四位数字(还可以选择以三位数字的区号开头)。...正则表达式字符串中的第一组括号将是分组1。第二组将是组2。通过将整数12传递给group()匹配对象方法,可以获取匹配文本的不同部分。向group()方法传递0什么都不传递将返回整个匹配的文本。...要以一种贪婪的方式匹配任何和所有文本,使用点、星和问号(.*?)。和大括号一样,问号告诉 Python贪婪的方式进行匹配。...\d、\w和\s分别匹配一个数字、单词空格字符。 \D、\W和\S分别匹配除数字、单词空格字符之外的任何内容。 [abc]匹配括号之间的任意字符(如a、bc )。...最后一部分是可选的扩展名,由任意数量的空格组成,后跟ext、xext.,再后跟 2 到 5 个数字。 注 很容易与包含带括号( )和转义括号\( \)的组的正则表达式混淆。

    6.6K40

    浅析JavaScript正则表达式

    \w{2,4}\s+javascript+\s+[^(]*/.test('ccy is javascript coder');//true        匹配3个字母数字加0个1个空格加2到4个字母数字加至少...1个空格加javascript加至少1个空格加0个多个左反圆括号字符 ?...重复匹配还种模式:贪婪模式(尽可能的少匹配),只需在待匹配的字符后跟随一个? ??、+?、*?、{1,5}?...=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。 (?!=x) 零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!.../d) 与后不跟数字的单词匹配,而不与该数字匹配 。 (?<=X) 零宽度正后发断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?

    1.6K30

    网络爬虫 | 正则表达式

    (\d\d\d)-(\d\d\d-\d\d\d\d),然后可以使用group()匹配对象方法,从一个分组获取匹配的文本。第一对括号是第1组。第二对括号是第2组。...*(称为星号)意味着"匹配零次多次",即星号之前的分组,可以在文本中出现任意次。...它可以完全不存在,一次又一次地重复。 +(加号)则意味着"匹配一次多次"。星号不要求分组出现在匹配的字符串中,但加号不同,加号前面的分组必须"至少出现一次"。...,就在正则表达式中该分组的后面,跟上花括号包围的数字。...贪婪与贪婪 如果需要匹配一段包含各种不同类型数据的字符串,传统方法需要挨个去匹配,而使用.*可以匹配所有字符,是一种万能匹配的方式。

    1.2K30

    代码之美,正则之道

    匹配除换行符以外的任意字符 \d 匹配数字, 等价于字符组[0-9] \w 匹配字母, 数字, 下划线 \s 匹配任意的空白符(包括制表符,空格,换行等) \b 匹配单词开始结束的位置 ^ 匹配行首...$ 匹配行尾 反义元字符 元字符 描述 \D 匹配数字的任意字符, 等价于[^0-9] \W 匹配除字母,数字,下划线之外的任意字符 \S 匹配空白的任意字符 \B 匹配单词开始结束的位置...grep , egrep , sed , awk 正则表达式特点 1. grep 支持:BREs、EREs、PREs 正则表达式 grep 指令后不跟任何参数, 则表示要使用 “BREs” grep 指令后跟...”-E” 参数, 则表示要使用 “EREs” grep 指令后跟 “-P” 参数, 则表示要使用 “PREs” 2. egrep 支持:EREs、PREs 正则表达式 egrep 指令后不跟任何参数,...…) 命名分组也是捕获性分组, 它将匹配的字符串捕获到一个组名称编号名称中, 在获得匹配结果后, 可通过分组名进行获取.

    1.8K20

    代码之美,正则之道

    匹配除换行符以外的任意字符 \d 匹配数字, 等价于字符组[0-9] \w 匹配字母, 数字, 下划线 \s 匹配任意的空白符(包括制表符,空格,换行等) \b 匹配单词开始结束的位置 ^ 匹配行首...$ 匹配行尾 反义元字符 元字符 描述 \D 匹配数字的任意字符, 等价于[^0-9] \W 匹配除字母,数字,下划线之外的任意字符 \S 匹配空白的任意字符 \B 匹配单词开始结束的位置...grep , egrep , sed , awk 正则表达式特点 1. grep 支持:BREs、EREs、PREs 正则表达式 grep 指令后不跟任何参数, 则表示要使用 “BREs” grep 指令后跟...”-E” 参数, 则表示要使用 “EREs” grep 指令后跟 “-P” 参数, 则表示要使用 “PREs” 2. egrep 支持:EREs、PREs 正则表达式 egrep 指令后不跟任何参数,...…) 命名分组也是捕获性分组, 它将匹配的字符串捕获到一个组名称编号名称中, 在获得匹配结果后, 可通过分组名进行获取. 如下是一个python的命名分组的例子.

    1.3K30

    一文掌握正则表达式

    "Regular expression"这个词比较拗口, 我们常使用缩写的术语"regex""regexp"....*字符和.字符搭配可以匹配所有的字符.*. *和表示匹配空格的符号\s连起来用, 如表达式\s*cat\s*匹配0更多个空格开头和0更多个空格结尾的cat字符串....如下: 除换行符外的所有字符 4. 零宽度断言(前后预查) 先行断言和后发断言都属于捕获簇(不捕获文本 ,也不针对组合计进行计数)....\sfat) 匹配 The 和 the, 且其后不跟着 (空格)fat. "(T|t)he(?!\sfat)" => The fat cat sat on the mat. 4.3 ?<= ......用于筛选所有匹配结果, 筛选条件为 其前不跟随着断言中定义的格式. 例如, 表达式 (?<!(T|t)he\s)(cat) 匹配 cat, 且其前不跟着 The the. "(?<!

    2.1K20

    java正则表达式http_Java 正则表达式(精华)

    这个表达式匹配文本”John” 后跟一个空格,然后跟1个多个字符,最后跟一个空格。你可能看不到最后的空格。 这个表达式包括一些字符有特别意义。字符 点 . 表示任意字符。...这是之前的例子,现在放在一个大分组里.(表达式末尾有一个空格)。 当遇到嵌套分组时, 分组编号是由左括号的顺序确定的。上例中,分组1 是那个大分组。...注意第1个字符串中所有出现 John 后跟一个单词 的地方,都被替换为 Joe Blocks 。第2个字符串中,只有第一个出现的被替换。...预定义字符分类不需要括在方括号里,当然也可以组合使用 \d [\d\s] 第1个匹配任意数字,第2个匹配任意数字空白符。 完整的预定义字符分类列表,在本文最后列出。...*hurt 逻辑操作符 正则表达式支持少量的逻辑运算(与,)。 与操作是默认的,表达式 John ,意味着J 与 o与h与n。 操作需要显示指定,用 | 表示。

    1.5K10

    正则表达式介绍

    不仅如此,您还必须应对这样一个事实,即国家指标可能会或可能不会出现这些数字,您可以假设它看起来像 "+1" "001" 。国家指示符可以用空格短划线与数字的其余部分分开。...\w 表示任何字母数字字符(如字母,数字和 _ ),而 \s 表示任何空格字符(如空格 "",制表符,换行符等)。 我展示的所有这三个特殊字符都可以大写。如果他们是,那么他们的意思恰恰相反!...(我们假设电话号码是按顺序写入数字,没有空格 "-" 将它们分开。)...假设如下: 国家 / 地区代码以 "00" "+" 开头,后跟一到三位数字 电话号码的长度在 8 到 12 之间 电话号码和国家 / 地区代码用空格 "" 连字符 "-" 分隔 让您的代码在我接下来要提供的字符串中查找电话号码...一些很好的主题要跟进,包括但不限于: - 捕获组 (以及Python的命名组) - 断言 (先行断言,负面,......

    4.9K00

    Java正则表达式详解

    这个表达式匹配文本”John” 后跟一个空格,然后跟1个多个字符,最后跟一个空格。你可能看不到最后的空格。 这个表达式包括一些字符有特别意义。字符 点 . 表示任意字符。...这是之前的例子,现在放在一个大分组里.(表达式末尾有一个空格)。 当遇到嵌套分组时, 分组编号是由左括号的顺序确定的。上例中,分组1 是那个大分组。...注意第1个字符串中所有出现 John 后跟一个单词 的地方,都被替换为 Joe Blocks 。第2个字符串中,只有第一个出现的被替换。...预定义字符分类不需要括在方括号里,当然也可以组合使用 \d [\d\s] 第1个匹配任意数字,第2个匹配任意数字空白符。 完整的预定义字符分类列表,在本文最后列出。...*hurt 逻辑操作符 正则表达式支持少量的逻辑运算(与,)。 与操作是默认的,表达式 John ,意味着J 与 o与h与n。 操作需要显示指定,用 | 表示。

    2.5K00

    对着爬虫网页HTML学习Python正则表达式re

    正则表达式,简称为 regex,是文本模式的描述方法。例如,\d 是一个正则表达式,表示一位数字字符,即任何一位 0 到 9 的数字。...如何可以获取全部匹配成功的项呢,咱们可以使用re.findall()来进行操作,其返回的结果是由所有匹配组成的列表。...\w 匹配字母数字及下划线 \W 匹配字母数字及下划线 \s 匹配任意空白字符,等价于 [ \t\n\r\f]。 \S 匹配任意空字符 \d 匹配任意数字,等价于 [0-9]....\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 \B 匹配单词边界。'...实例 描述 [Pp]ython 匹配 "Python" "python" rub[ye] 匹配 "ruby" "rube" [aeiou] 匹配中括号内的任意一个字母 [0-9] 匹配任何数字

    88930

    正则表达式用法简介与速查

    匹配任意单个字符(换行符除外) c.t 匹配:所有c和t之间隔一个字符的文本,如:cat, cbt, cct, … [] 匹配字符集合中的一个字符 [abc] 匹配:abc [^] 对字符集合求...特殊元字符 元字符 说明 补充说明 \d 匹配任意一个数字字符 等价于[0-9] \D \d 的反义,匹配一个任意数字字符 等价于[^0-9] \w 匹配任意一个“字母数字下划线”字符 等价于[A-Za-z0...(5) 定义区间匹配 用法: [a-z]可匹配所有小写字母,[A-Z]可匹配所有大写字母,[0-9]可匹配所有数字。...,表示1~3位数字后跟一个“.”号, 可以匹配形如:“192.”“1.”这样的字符模式。之后的 {3} 表示重复3次,即可以把“192.168.1.”匹配出来了。...'; // 生成1个String对象 var regex = /[^\w\s]/; // 匹配字母和空格 var idx = text.search(regex); console.log

    3.7K20
    领券