制作一个包含我的列表项的文本文件并对其应用正则表达式

2024-04-06

我应该编写一个代码来读取包含一些具有一些常见语言特征的单词的文本文件。对所有单词应用一些正则表达式,并写入一个包含更改后的单词的文件。

现在假设我的文本文件名为abcd.txt有这些话

king
sing
ping
cling
booked
looked
cooked
packed

我的第一个问题就从这里开始。在我的简单文本文件中如何编写这些单词以获得上述结果。我应该将它们以行分隔还是以逗号分隔?

这是用户 palvarez 提供的代码。

import re
with open("new_abcd", "w+") as new, open("abcd") as original:
    for word in original:
      new_word = re.sub("ing$", "xyz", word)
      new.write(new_word)

我可以添加类似的东西吗-

with open("new_abcd", "w+") as file, open("abcd") as original:
    for word in original:
      new_aword = re.sub("ed$", "abcd", word)
      new.write(new_aword)

在同一个代码文件中?我想要类似的东西 -

kabc
sabc
pabc
clabc
bookxyz
lookxyz
cookxyz
packxyz

PS - 我不知道是否有必要提及这一点,但我应该为 Unicode 支持的脚本 Devanagari 这样做。我在示例中没有使用它,因为我们这里的许多人都无法阅读该脚本。此外,该脚本使用了一些变音符号。例如。 'का' 有 1 个辅音字符 'क' 和 1 个元音符号 'ा',合在一起构成 'का'。在我的正则表达式中,我需要调整变音符号。


我认为逐行逐字的方法更好,因为您不必为分隔符和条带而烦恼。

有了这样的文件:

king
sing
ping
cling
booked
looked
cooked
packed

像这样的代码,使用re.sub https://docs.python.org/3/library/re.html#re.sub替换模式:

import re
with open("new_abcd.txt", "w") as new, open("abcd.txt") as original:
    for word in original:
      new_word = re.sub("ing$", "xyz", word)
      new_word = re.sub("ed$", "abcd", new_word)
      new.write(new_word)

它创建一个结果文件:

kxyz
sxyz
pxyz
clxyz
bookabcd
lookabcd
cookabcd
packabcd

我尝试了你给我们的变音符号,它似乎工作得很好:

print(re.sub("ा$", "ing", "का"))
>>> कing

编辑:添加了多个替换。您可以将替换项放入列表中并对其进行迭代以执行以下操作re.sub如下。

import re

# List where first is pattern and second is replacement string
replacements = [("ing$", "xyz"), ("ed$", "abcd")]

with open("new_abcd.txt", "w") as new, open("abcd.txt") as original:
    for word in original:
      new_word = word
      for pattern, replacement in replacements:
        new_word = re.sub(pattern, replacement, word)
        if new_word != word:
           break
      new.write(new_word)

这限制了每个单词的一次修改,仅采用第一个修改该单词的修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作一个包含我的列表项的文本文件并对其应用正则表达式 的相关文章

随机推荐

  • Android中从中心点缩放位图以获得放大效果

    我试图在 Android 中从中心点放大位图以实现缩放效果 但没有成功 我的代码是 float scaleWidth float width i 5 width float scaleHeight float height i 5 heig
  • 如何在 Swift 中通过部分标签文本搜索来定位 XCUIElement?

    我一直在使用这种方法定位 XCUIElements app staticTexts Full Label Text 但是如果我只知道标签文本的一部分怎么办 部分标签文本是动态生成的 例如 Item 1 Item 2 等 因此我想通过查找包含
  • 生成数据框中7列的所有组合并添加相应的行以生成新列

    我有一个类似于下面的数据框 Wave A B C 340 77 70 15 341 80 73 15 342 83 76 16 343 86 78 17 我想生成包含现有列的所有可能组合的列 我在这里显示了 3 列 但在我的实际数据中 我有
  • 查找与 colorBrewer 调色板接近的颜色的颜色名称

    我想使用R包SNA来做社交网络分析 SNA 仅使用 R 颜色名称 文本名称 为元素着色 我想从 ColorBrewer 调色板 set3 中找到与 R 中的颜色名称接近的匹配项 RGB 空间中没有太多精确匹配 require RColorB
  • 这个错误意味着什么以及如何解决它?

    我正在尝试在 android 中使用 NDK 构建 C 代码 我有一个有参数的方法vector lt vector
  • PHP 时区数据库损坏错误

    我有一个 WordPress 网站 今天突然停止工作了 当我查看日志时 我看到错误 错误 客户端 50 78 108 177 PHP 致命错误 strtotime 时区 数据库已损坏 这应该never happen 在谷歌上阅读后 有人说他
  • 为什么我应该在 Silverlight 应用程序中使用 MVVM?

    我想知道为什么我们应该使用 MVVM 来实现 Silverlight 应用程序 它有什么优点呢 我们不对 ViewModel 进行单元测试 所以我想要其他原因 以下是我对人们通常所说的一些优点的疑问 1 松耦合 当我们使用MVVM时 视图依
  • 在centos中设置Docker_Opts

    我需要设置 docker 在运行 amazon linux centos 的主机上侦听 tcp 0 0 0 0 4243 我看到的所有文档都告诉我运行以下命令 echo DOCKER OPTS H tcp 127 0 0 1 4243 gt
  • 我如何在 Delphi 中进行线程处理的各种方法之间进行选择?

    看来我终于要在我的 Delphi 2009 程序中实现某种线程了 如果只有一种方法可以做到这一点 我就会逃跑 但我看到了几种可能性 谁能解释一下它们之间有什么区别以及为什么我会选择其中一个而不是另一个 Delphi 中的 TThread 类
  • Android 设备管理员权限活动未启动

    我正在尝试以设备管理员身份启用我的应用程序 尝试调用授予我的应用程序权限成为设备管理员的活动的代码如下 import android app Activity import android app admin DevicePolicyMan
  • 将字符串格式的日期转换为字符串日期前一天的 nsdate 结果

    我搜索了我的问题 但没有找到任何相关的帮助 故事 用户按名称 开始日期 结束日期和注释创建连续事件 因此将所有字段保存在 Sqlite 数据库中 两个日期格式均为 yyyy MM dd 之后 当用户想要对事件执行操作时 应用程序会检查用户选
  • 如何使用 OpenCV triangulatePoints

    我正在努力获取 OpenCVtriangulatePoints功能来工作 我正在使用该函数与光流生成的点匹配 我使用来自单个移动摄像机的两个连续帧 位置 目前 这些是我的步骤 给出了内在函数 看起来就像人们所期望的那样 2 6551e 00
  • 动态为mysql查询中的所有字段名分配别名

    我的 mysll 数据库中有 2 个表 两个表都有很少的固定列和很少的动态列 字段 架构 我想用以下查询连接这两个表 SELECT FROM cd cd LEFT JOIN cd n cn ON cd id cn fk cd 我想要的结果是
  • 在新维度中堆叠数组

    假设我有三个数组 k np array 1 1 2 2 m np array 3 3 4 4 n np array 5 5 6 6 理想情况下 我希望获得形状为 3 2 2 的最终数组 即 array 1 1 2 2 3 3 4 4 5 5
  • Scala 模式匹配引用

    当模式匹配案例类时 您实际上如何引用它所匹配的类 这是一个例子来说明我的意思 sealed trait Value case class A n Int extends Value v match case A x gt doSomethi
  • 大对象不能在自动提交模式下使用

    我正在开发一个使用 spring 和 hibernate 的应用程序 我们使用 postgresql 作为数据库 当我尝试将记录插入到具有 OID 列的表中时 会引发以下错误 org hibernate exception GenericJ
  • 未处理的异常:无法测试没有大小的渲染框

    所以我正在尝试重新创建一个 UI 模板 这是代码 我试图通过调用RecentlyViewed 添加另一个水平GridView 但重新加载后它无法呈现 我不知道如何渲染它 我尝试过使用扩展的小部件和灵活的但都不起作用 return Scaff
  • iOS:UICollectionViewCell根据屏幕尺寸自动调整大小

    我试图在集合视图中创建 10 个单元格 与屏幕大小相同 当我在 iphone5s 模拟器中运行我的应用程序时 视图恰好包含 5 个单元格 但是当我切换到 iphone6p 模拟器时 视图包含超过 5 个单元格 我应该如何调整单元格大小 以使
  • 在按钮上应用滤色器

    我有很多带有很多不同背景颜色的按钮 我想知道是否有办法在点击时应用一些滤色镜 例如 我希望所有按钮在单击时变得更暗 它们保留了原来的颜色 但颜色更深了 有没有一种简单的方法可以做到这一点 或者我必须为每个按钮定义较暗的颜色 Thanks 我
  • 制作一个包含我的列表项的文本文件并对其应用正则表达式

    我应该编写一个代码来读取包含一些具有一些常见语言特征的单词的文本文件 对所有单词应用一些正则表达式 并写入一个包含更改后的单词的文件 现在假设我的文本文件名为abcd txt有这些话 king sing ping cling booked