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

如何在一行中匹配带有文件扩展名的任何字符串,并在python中仅打印匹配的单词

在Python中,可以使用正则表达式来匹配带有文件扩展名的任何字符串,并且只打印匹配的单词。下面是一个示例代码:

代码语言:python
代码运行次数:0
复制
import re

# 定义要匹配的字符串
string = "This is a sample.txt file and another.docx file"

# 使用正则表达式匹配带有文件扩展名的任何字符串
matches = re.findall(r'\b\w+\.\w+\b', string)

# 打印匹配的单词
for match in matches:
    print(match)

运行以上代码,输出结果为:

代码语言:txt
复制
sample.txt
another.docx

解释代码的关键部分:

  • re.findall() 函数用于在字符串中查找所有匹配正则表达式的子串,并返回一个列表。
  • 正则表达式 r'\b\w+\.\w+\b' 用于匹配带有文件扩展名的单词,其中:
    • \b 表示单词的边界。
    • \w+ 表示匹配一个或多个字母、数字或下划线。
    • \. 表示匹配一个点(用于分隔文件名和扩展名)。
    • \w+ 表示匹配一个或多个字母、数字或下划线。
  • for 循环用于遍历匹配的单词,并打印每个单词。

请注意,以上代码只是一个示例,实际应用中可能需要根据具体需求进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux三剑客之grep,awk,sed命令必知必会

grep "linuxmi" test test1 test2 匹配文件中的整个单词。 默认情况下,即使在子字符串中找到了Grep,也会输出所有出现的某种特定模式。...在这种情况下,我们将输出不包含单词“linuxmi”的其他任何内容。...“ $”正则表达式表示行的结尾,可用于匹配以特定字符串结尾的行。在本例中,我们注意匹配以“ 0”结尾的行。...它不需要任何编译,并且用户可以使用数字函数,变量,字符串函数和逻辑运算符。 它使您能够以语句形式编写简单有效的程序,以在文件中搜索特定模式,并在找到匹配项时执行操作。...如何在Linux中使用AWK命令 默认情况下,Awk命令用于打印文件的内容。在本例中,没有指定模式,因此操作应用于文件的每一行。

9.3K20

Sed..

N # 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 p # 打印模板块的行。 P # (大写) 打印模板块的第一行。 q # 退出Sed。...& # 保存搜索字符用来替换其他字符,如s/love/ **&** /,love这成 **love** 。 \匹配单词的开始,如:/\匹配包含以love开头的单词的行。...\> # 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\} # 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。...,$d' file 删除文件最后一行: sed '$d' file 删除文件中所有开头是test的行: sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词,使用...Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头的行为注释行,且不能跨行。

1.6K20
  • linux中sed命令总结

    N # 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 p # 打印模板块的行。 P # (大写) 打印模板块的第一行。 q # 退出Sed。...& # 保存搜索字符用来替换其他字符,如s/love/ **&** /,love改成 **love** 。 \匹配单词的开始,如:/\匹配包含以love开头的单词的行。...\> # 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\} # 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。...2,$d' file 删除文件最后一行: sed '$d' file 删除文件中所有开头是test的行: sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词,...Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头的行为注释行,且不能跨行。

    3.2K20

    【Linux篇】--sed的用法

    n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 p 打印模板块的行。 P(大写) 打印模板块的第一行。...p 表示打印行。 w 表示把行写入一个文件。 x 表示互换模板块中的文本和缓冲区中的文本。...y 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 4、sed元字符集 ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。...& 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 \匹配单词的开始,如:/\匹配包含以love开头的单词的行。...\> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。

    1.6K20

    【linux命令讲解大全】081.sed:功能强大的流式文本编辑器

    P # (大写) 打印模板块的第一行。 q # 退出Sed。 b # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r # 从file中读行。...& # 保存搜索字符用来替换其他字符,如s/love/ & /,love这成 love 。 匹配单词的开始,如:/匹配包含以love开头的单词的行。...> # 匹配单词的结束,如/love>/匹配包含以love结尾的单词的行。 x{m} # 重复字符x,m次,如:/0{5}/匹配包含5个0的行。.../p’ file 直接编辑文件 选项-i ,会匹配file文件中每一行的所有book替换为books: sed -i 's/book/books/g' file 全面替换标记g 使用后缀 /g 标记会替换每一行中的所有匹配...,$d' file 删除文件最后一行: sed '$d' file 删除文件中所有开头是test的行: sed '/^test/'d file 已匹配字符串标记& 正则表达式 \w+ 匹配每一个单词,使用

    25710

    常见linux命令介绍-sed

    ’ filename 执行脚本中的sed处理命令 常用参数 -n :只打印模式匹配的行 -e :直接在命令行模式上进行sed动作编辑,此为默认选项 -f :将sed的动作写在一个文件内,用–f filename...n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。 N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 p 打印模板块的行。 P(大写) 打印模板块的第一行。...p 表示打印行。 w 表示把行写入一个文件。 x 表示互换模板块中的文本和缓冲区中的文本。...y 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 子串匹配标记 & 已匹配字符串标记 sed元字符集 符号 说明 ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。...\匹配单词的开始,如:/\<love/匹配包含以love开头的单词的行。 \> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。

    1.6K10

    Linux命令篇(二):文档编辑部分

    1、grep 命令 grep命令主要用于查询文件中的字符串或者应用于正则表达式中,基本语法格式: gerp [参数选项] [文件] 常用参数 -i:忽略大小写进行匹配。...-v:反向查找,只打印不匹配的行。 -n:显示匹配行的行号。 -r:递归查找子目录中的文件。 -l:只打印匹配的文件名。 -c:只打印匹配的行数。...举例说明 在文件 testfile.txt 中查找字符串 “linux”,并打印匹配的行 grep linux testfile.txt 在标准输入中查找字符串 “linux”,并只打印匹配的行数 echo.../目录下查找文件中带有linux字符串的文件,并打印字符串所在行的内容 grep -r linux /homa/sk/test/ 2、rgrep 命令 rgrep命令等同于 grep -r 命令,主要是用于递归查找文件里符合条件的字符串...后面通常不接任何东东 i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行) p :打印,亦即将某个选择的数据印出。

    12510

    Linux|Grep 命令的 12 个实用示例

    -v 选项告诉 grep 反转其输出,这意味着不打印匹配的行,而是执行相反的操作并打印所有与表达式不匹配的行,在本例中为 # 注释行。 请注意,我们还使用了 grep .最后以隐藏所有空行的输出。...-name “*.mp3” | grep –i JayZ | grep –vi “remix” 在此示例中,我们使用 find 打印所有带有 *.mp3 扩展名的文件,将其通过管道传输到 grep –...i 以过滤并打印名称为“JayZ”的所有文件,然后将另一个管道传输到 grep –vi 进行过滤out 并且不会打印带有字符串(在任何情况下)“remix”的所有文件名。...打印匹配周围的行数 grep 的 -C 选项类似,但它不是打印字符串之前或之后的行,而是打印任一方向的行: ifconfig | grep -C 2 lo TX errors 0 dropped...另一方面,如果您尝试: ifconfig | grep -w "RUN" 不会返回任何内容,因为我们搜索的不是模式,而是整个单词。 10.

    34310

    Python 学习入门(13)—— 正则表达式

    如在 "news.rc" 中,"news" 是基本名,"rc" 是文件的扩展名。 匹配模式非常简单: .*[.].*$ 注意 "." 需要特殊对待,因为它是一个元字符;我把它放在一个字符类中。...$ 在第三次尝试中,第二和第三个字母都变成可选,为的是允许匹配比三个字符更短的扩展名,如 "sendmail.cf"。 该模式现在变得非常复杂,这使它很难读懂。...后面的 $ 被要求是为了确保象 "sample.batch" 这样扩展名以 "bat" 开头的会被允许。 将另一个文件扩展名排除在外现在也容易;简单地将其做为可选项放在界定符中。...python >>> p = re.compile('x*') >>> p.sub('-', 'abxd') '-a-b-d-' 如果替换的是一个字符串,任何在其中的反斜杠都会被处理。"...未知的转义如 "\j" 则保持原样。逆向引用,如 "\6",被 RE 中相应的组匹配而被子串替换。这使你可以在替换后的字符串中插入原始文本的一部分。

    1.2K40

    文件系统特殊命令一览表

    指定含有字符串的文件列表每个字符串在文件中应位于单独的一行,如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制该文件 (例如...如果只用文件扩展名调用 ASSOC,则显示那个文件扩展名的当前文件关联。 如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。 案例: #示例1.显示指定的文件类型,并且设置文件扩展名....将搜索字符串作为一般表达式使用 /S 在当前目录和所有子目录中搜索匹配文件 /I 指定搜索不分大小写 /X 打印完全匹配的行 /V...只打印不包含匹配的行 /N 在匹配的每行前打印行数 /M 如果文件含有匹配项,只打印其文件名 /O 在每个匹配行前打印字符偏移量 /P...通配符: 任何字符 * 重复: 以前字符或类出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [class] 字符类: 任何在字符集中的字符

    3.8K30

    grep note

    -R --exclude-dir={.git,res,bin} 多个文件示例 排除扩展名为 java 和 js 的文件 grep -E "http" . -R --exclude=*....排除扩展名为java, js 和 md~ 的文件 如何在 Linux 系统和类 Unix 的操作系统中使用带正则表达式的 grep 命令呢?...固定检索内容的位置: 你可以使用 ^ 和 $ 符号强制一个正则表达式分别匹配一行的开始或结束的位置。...grep '\' FILENAME 在上面的例子中, \单词的开始位置匹配空格字符串 \> 在单词的结尾匹配空格字符串 检索并输出所有两个字母的结果:grep '^..$' FILENAME...你可以使用下面的语法测试一个字符在序列中的重复的次数: {N} {N,} {min,max} 匹配包含两个字母 v 的字符串结果:egrep "v{2}" FILENAME 下面的例子中将检索文件内包含

    2.7K20

    ack - 比grep好用的文本搜索工具

    与grep相比,ack默认会忽略版本控制目录(如.git、.svn)、二进制文件和隐藏文件等,并且可以根据文件扩展名自动对不同类型的文件进行搜索,从而减少不必要的搜索范围,提高搜索效率。...对于符合搜索条件的文件,ack会逐行读取文件内容,并使用正则表达式对每一行进行匹配。如果某一行匹配成功,ack会将包含匹配内容的行及其所在的文件名、行号等信息输出给用户。...只搜索特定类型的文件:ack --python "pattern"只在 Python 文件(.py扩展名)中搜索包含pattern的文本行。...ack支持多种文件类型,如--javascript、--html等。...不过对于大多数常见的搜索需求,ack的正则表达式功能已经足够使用。如何在ack中排除特定文件类型的搜索?如何在ack中使用正则表达式进行更复杂的搜索?如何在ack中使用彩色输出?

    6910

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    提供了后缀名(.bak)则备份文件 -l N/ --line-length=N 为l命令指定换行的长度n -n/--quiet/——silent 不自动打印模式空间内容,仅显示脚本处理后的结果,...前面可加数字,指定打印第几行 P(大写) 打印模板块的第一行。 q 退出Sed。 b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r file 从file中读行。...& 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 \匹配单词的开始,如:/\匹配包含以love开头的单词的行。...\> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。...需用到替换标记:& 已匹配字符串标记,代替之前已匹配内容 需用到正则表达式:\w\+:匹配每一个单词 $ ls | sed 's/^/666_&/g' #表示给当前文件下的文件名统一添加前缀 $

    9.3K21

    egrep命令

    -C NUM, --context=NUM: 打印输出上下文的NUM行,在相邻的匹配组之间放置包含--的行。 -b, --byte-offset: 打印输入文件中每行输出之前的字节偏移量。...-n, --line-number: 在输出的每一行前面加上输入文件中的行号。 -o, --only-matching: 只显示匹配行中与模式匹配的部分。...如果grep确定文件是文本文件,它将从原始文件内容中删除CR字符(以使带有^和$的正则表达式正常工作)。...-v, --invert-match: 反转匹配的意义,以选择不匹配的行。 -w, --word-regexp: 只选择与表单中包含的单词匹配的行。...测试是匹配的子串必须在行的开头,或者前面有非单词组成字符,同样,它必须位于行的末尾,或者后跟非单词组成字符。单词组成字符是字母、数字和下划线。

    1.4K10

    你应该学习正则表达式

    1 – 年份匹配 我们来看看另外一个简单的例子——匹配二十或二十一世纪中任何有效的一年。 ? 我们使用\b而不是^和$来开始和结束这个正则表达式。\b表示单词边界,或两个单词之间的空格。...2 – 匹配时间 现在我们要定义一个正则表达式来匹配24小时格式(MM:HH,如16:59)的任何时间。 ? \b——字边界 [01]——0或1 ?——表示上述模式是可选的。...上述脚本将打印Today's date is 09/18/2017到控制台。 同样的脚本在Python中是这样的: ? 4 – 电子邮件验证 正则表达式也可用于输入验证。 ?...——匹配URL路径(/posts)、查询字符串(?limit=1)和/或文件扩展名(.html),这些都是可选的。 6.0 – 命名捕获组 你注意到没有,一些捕获组现在以?标识符开头。...(png|jpg|jpeg|gif|webp)——匹配常见的图像文件扩展名 $——结束行 以下是如何列出Downloads目录中所有图像文件的方法。 ?

    5.3K20

    6个实例,8段代码,详解Python中的for循环

    作者:奥斯瓦尔德·坎佩萨托(Oswald Campesato) 来源:大数据DT(ID:hzdashuju) Python 支持for循环,它的语法与其他语言(如JavaScript 或Java)稍有不同...下面的代码块演示如何在Python 中使用for循环来遍历列表中的元素: 上述的代码段是将三个字母分行打印的。...你可以通过在print语句的后面添加逗号“,”将输出限制在同一行显示(如果指定打印的字符很多,则会“换行”),代码如下所示: 当你希望通过一行而不是多行显示文本中的内容时,可以使用上述形式的代码。...当循环执行结束,清单1 打印出数值单词的和,并在后面显示非数值单词。它的输出如下所示: 02 指数运算 清单2 的Nth_exponet.py说明了如何计算一组整数的幂。...清单7 的输出如下所示: 05 用基础的for循环显示字符串中的字符 清单8 的StringChars1.py说明了如何打印一个文本字符串中的字符。

    2.1K20

    Python 自动化指南(繁琐工作自动化)第二版:十、组织文件

    原文:https://automatetheboringstuff.com/2e/chapter10/ 在前一章中,你学习了如何在 Python 中创建和写入新文件。...首先运行程序,注释掉这些调用,并添加print()调用来显示将要删除的文件,这通常是一个好主意。下面是一个 Python 程序,它旨在删除带有txt文件扩展名的文件。...为第二个参数 ➌ 传递re.VERBOSE将允许正则表达式字符串中的空白和注释,使其更具可读性。 正则表达式字符串以^(.*?)开头,匹配文件名开头的任何可能在日期之前的文本。((0|1)?...第二步:从文件名中识别日期部分 接下来,程序必须遍历从os.listdir()返回的文件名字符串列表,并根据正则表达式匹配它们。应该跳过任何没有日期的文件。...填补空白 编写一个程序,在单个文件夹中查找带有给定前缀的所有文件,如spam001.txt、spam002.txt等,并定位编号中的任何空白(如是否有spam001.txt和spam003.txt,但没有

    1.4K50

    fd一个简单快速的find命令替代方案

    如何在Linux中安装fd 我们将看看如何在不同的Linux发行版中安装 fd 。...(git | fd)ignore 文件匹配 --no-ignore-vcs 不要忽略.gitignore文件的匹配 -s, --case-sensitive 区分大小写的搜索...# fd 在下一个 fd 示例中,我将使用位于/var/www/html/中的默认WordPress安装来搜索不同的文件和文件夹。 在下面的示例中,我仅使用前10个结果来缩短命令输出。...我们可以使用- e标志按文件扩展名进行过滤: # fd -e jpg - e标志可以与这样的模式结合使用: # fd -e php index 上面的命令将查找扩展名为 php 的文件,并在其中包含字符串...index : 如果要排除某些结果,可以使用- E标志,如下所示: # fd -e php index -E rumenz 此命令将查找包含php扩展名的所有文件,其中包含字符串 index

    19410

    文件系统特殊命令一览表

    指定含有字符串的文件列表每个字符串在文件中应位于单独的一行,如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制该文件 (例如...如果只用文件扩展名调用 ASSOC,则显示那个文件扩展名的当前文件关联。 如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。 案例: #示例1.显示指定的文件类型,并且设置文件扩展名....将搜索字符串作为一般表达式使用 /S 在当前目录和所有子目录中搜索匹配文件 /I 指定搜索不分大小写 /X 打印完全匹配的行 /V...只打印不包含匹配的行 /N 在匹配的每行前打印行数 /M 如果文件含有匹配项,只打印其文件名 /O 在每个匹配行前打印字符偏移量 /P...*" #13.统计字符数 findstr /o .* test.txt #/o:在每行前打印字符偏移量 #上一行中的.

    3.2K32

    fd一个简单快速的find命令替代方案

    如何在Linux中安装fd 我们将看看如何在不同的Linux发行版中安装 fd 。 对于 Ubuntu 和 Debian 的发行版,您需要从发布页面下载最新的fd版本并使用以下命令进行安装。...(git | fd)ignore 文件匹配 --no-ignore-vcs 不要忽略.gitignore文件的匹配 -s, --case-sensitive 区分大小写的搜索...# fd 在下一个 fd 示例中,我将使用位于/var/www/html/中的默认WordPress安装来搜索不同的文件和文件夹。 在下面的示例中,我仅使用前10个结果来缩短命令输出。...我们可以使用- e标志按文件扩展名进行过滤: # fd -e jpg - e标志可以与这样的模式结合使用: # fd -e php index 上面的命令将查找扩展名为 php 的文件,并在其中包含字符串...index : 如果要排除某些结果,可以使用- E标志,如下所示: # fd -e php index -E rumenz 此命令将查找包含php扩展名的所有文件,其中包含字符串 index ,并将排除

    1.5K00
    领券