Python:返回完整单词而不仅仅是字符串的特定部分(正则表达式)

2023-12-23

我最近刚刚开始学习 Python,并且已经“深入”到了正则表达式。我的任务看起来相当简单。我只需要编写一个从字符串返回某些单词的正则表达式。规则如下:单词只能包含一组元音。换句话说,它是一个不完美但简单的正则表达式,旨在从文本中返回一个音节单词。

我相信我编写的正则表达式并不太遥远,但我只返回了字符串的一部分,而不是完整的单词。下面的例子:

>>> import re

>>> text = "A boy named Sue tried to kill a swamp monkey, but failed miserably. He then cried. Boo hoo."

>>> re.findall("[^aeiou][aeiou]{1,}[^aeiou]", text)
['boy', 'nam', 'Sue ', 'ried', 'to ', 'kil', ' a ', 'wam', 'mon', 'key', 'but', 'fail', 'mis', 'rab', 'He ', 'hen', 'ried', 'Boo ', 'hoo.']

如您所见,结果不正确。它只是分割字符串以适合我的正则表达式,而不是返回它来自的单词。此外,返回的一些字符串甚至不是来自符合我的标准的单词。

提前致谢!


这有点复杂(如果我理解你的要求):

regex = re.compile(
    r"""\b           # Match the start of a word
    [^\W\d_aeiou]*   # Match any number letters except vowels
    [aeiou]+         # Match one or more vowels
    [^\W\d_aeiou]*   # Match any number letters except vowels
    \b               # Match the start of a word""", 
    re.VERBOSE|re.IGNORECASE)

然后你可以像这样使用它:

>>> regex.findall("A boy named Sue tried to kill a swamp monkey, but failed miserably. He then cried. Boo hoo.")
['A', 'boy', 'Sue', 'tried', 'to', 'kill', 'a', 'swamp', 'but', 'He', 'then', 'cried', 'Boo', 'hoo']

解释:

[^\W\d_aeiou]有点难以理解:

  • \w匹配任何字母、数字或下划线。
  • \W匹配任何字符\w不匹配。
  • [^\W]因此匹配相同\w。但是我们现在可以向这个否定字符类添加更多字符,这些字符应该从有效字符集中减去。
  • [^\W\d_aeiou]因此匹配任何\w匹配,但不包含数字、下划线或元音。
  • 这种方法的优点(而不是使用[bcdfghjklmnpqrstvwxyz]就是它\w是 Unicode 感知的(Python 3 原生,根据 Python 2 的请求,如果添加re.Uflag),因此不限于 ASCII 字母。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:返回完整单词而不仅仅是字符串的特定部分(正则表达式) 的相关文章

随机推荐

  • 使用 Eclipse 和 Tomcat 的 JSF 2.0 教程 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 获取一段文本中最后一行的宽度

    是否可以以某种方式测量具有多个中断 回车的段落中最后一行文本的长度 Morbi leo risus porta ac consectetur ac vestibulum at eros Donec id elit non mi porta
  • 如何在 Midnight Commander 中使用 panelize?我想知道,因为这是对选定文件和目录进行递归 chmod 的一种方法

    我知道我可以使用 chmod 和高级 chmod 但他们没有为我提供一种方法递归地更改文件和文件夹的权限 Panelize 似乎能够做到这一点 但是 如果我使用 Ctrl t 选择文件然后选择 panelize 我似乎没有得到任何结果 我不
  • F# 记录与 .net 结构

    f 记录与 net 结构相同吗 我看到人们谈论 f 结构 他们使用这个术语可以与 F 记录互换吗 像FSharp 运行我的算法比 Python 慢 https stackoverflow com questions 5850243 fsha
  • 如何在 Java 中更改客户端 TLS 首选项?

    我正在尝试向 Java 中的端点发出 POST 请求 当我尝试发送请求时 出现以下错误 Caused by javax net ssl SSLHandshakeException The server selected protocol v
  • 让 Eclipse 使用 src/test/resources 而不是 src/main/resources

    我正在 Eclipse 中编写一个小型 Maven 应用程序 我将一些属性文件和应用程序上下文存储在目录 src main resources 中 我现在想让 Eclipse 使用 src test resources 目录中的属性 所以当
  • 在三元条件下抛出新的异常[重复]

    这个问题在这里已经有答案了 我有这行代码 List
  • C# 十进制的类型后缀

    我不知道我想要实现的目标的正确措辞是什么 因此它可能已经发布在网上 如果是的话请善待 好吧 基本上我有这个方法 public static T IsNull
  • Docker-compose 在运行时使用 NGINX 扩展 Jetty

    我是码头工人的新手 我已经完成了一些教程来创建 docker compose 文件来创建 3 个 Jetty 1 个 NGINX 和 1 个 MySQL NGINX 充当具有循环机制的 LB 它按预期工作良好 如果我扩展我的jetty实例
  • Java NIO:IOException:损坏的管道是什么意思? [复制]

    这个问题在这里已经有答案了 对于我的一些 Java NIO 连接 当我有SocketChannel write ByteBuffer 调用 它会抛出一个IOException 管道破损 是什么导致 管道破裂 更重要的是 是否有可能从该状态恢
  • iBeacons:如果应用程序在后台,locationManager:didEnterRegion:仅在锁屏显示时调用

    我正在开发一个监视 iBeacon 区域的 iOS 应用程序 当应用程序在后台运行时 我希望它在遇到特定的 iBeacon 区域时发送本地通知 一切工作正常 除了一件事 locationManager didEnterRegion 显然不会
  • 绘制植物雌性和雄性性相持续时间

    我很难弄清楚如何我们可以创建一个折线图 其中 Y 轴和 X 轴上都有单个植物一条连续的线分为植物各自的开放期 性期和枯萎期 我有大约 60 株植物 每株都有 5 到 15 朵花 以及它们各自的开放日期 进入雄性阶段的日期 进入雌性阶段的日期
  • 配置 log4j 在运行时记录到自定义文件

    任何人都可以指导我如何配置 log4j 以记录到我在运行时指定的特定文件 日志文件的名称和路径是在运行时生成的 应用程序必须记录到该特定文件 通常 log4j properties 文件中的文件附加器条目指向应用程序将使用的日志文件 但是在
  • 快速且Python式地确定字符串是否为回文的方法

    编辑 正如有人指出我不正确地使用了回文概念 现在我已经使用正确的函数进行了编辑 我还在第一个和第三个示例中做了一些优化 其中 for 语句一直运行到到达字符串的一半 我为检查字符串是否为回文的方法编写了三个不同版本的代码 该方法作为类 st
  • 如何使用 Tesseract-android-Tools

    我有 tesseract android tools 1 00 请帮助我使用 TessBaseAPI 接口 我只想将一个 jpg 图像传递给一个 Android 应用程序 该应用程序将一些文本作为图像的一部分 然后通过这个超立方体引擎我想将
  • Firefox 无法正确渲染 svg

    我在 Firefox 中遇到了这个问题 或者可能是我使用了错误的东西 但我使用的是这样的 svg 图像 img src image svg alt some image 浏览器将它们呈现如下 我可以让他们像 png它工作得很好 但我需要它们
  • PHP字符串计算[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我的问题是 在 PHP 中如何从字符
  • System.InvalidOperationException:异步操作尚未完成

    安装导致 Ml net 异常的管道 这Fit不是一个等待的事情 我很困惑为什么会发生这种情况 任何帮助都是值得赞赏的 var model pipeline Fit dataView 堆栈跟踪 在 System Threading Chann
  • 启动时自动运行 EFI 应用程序

    I can 构建并手动执行 http sourceforge net apps mediawiki tianocore index php title Getting Started Writing Simple ApplicationUE
  • Python:返回完整单词而不仅仅是字符串的特定部分(正则表达式)

    我最近刚刚开始学习 Python 并且已经 深入 到了正则表达式 我的任务看起来相当简单 我只需要编写一个从字符串返回某些单词的正则表达式 规则如下 单词只能包含一组元音 换句话说 它是一个不完美但简单的正则表达式 旨在从文本中返回一个音节