Python 行尾正则表达式

2023-11-23

我正在尝试编写一个正则表达式,在点之前和之后添加一个空格。 但是,我只希望在点后有空格或行尾时出现此情况。

但是,对于行尾情况,我无法这样做。

Eg.

I want a hotel. >> I want a hotel .
my email is [email protected] >> my email is zo[email protected]
I have to play. bye! >> I have to play . bye!

以下是我的代码:

# If "Dot and space" after word or number put space before and after
utterance = re.sub(r'(?<=[a-z0-9])[.][ $]',' . ',utterance)

如何更正我的正则表达式以确保上面的第一个示例也有效,我尝试将 $ 符号放在方括号中,但这不起作用。


主要问题是$字符类内部表示文字$符号,你只需要一个分组结构 here.

我建议使用以下代码:

import re
regex = r"([^\W_])\.(?:\s+|$)"
ss = ["I want a hotel.","my email is [email protected]", "I have to play. bye!"]
for s in ss:
    result = re.sub(regex, r"\1 . ", s).rstrip()
    print(result)

See the Python演示.

如果您需要仅在行上应用此功能而不影响换行符,则可以使用

import re
regex = r"([^\W_])\.(?:[^\S\n\r]+|$)"
text = "I want a hotel.\nmy email is [email protected]\nI have to play. bye!"
print( re.sub(regex, r"\1 . ", text, flags=re.M).rstrip() )

See 这个Python演示.

Output:

I want a hotel . 
my email is [email protected]
I have to play . bye!

Details:

  • ([^\W_])- 第 1 组匹配任何字母或数字
  • \.- 一个字面点
  • (?:\s+|$)- 匹配 1 个以上空格或字符串锚结尾的分组(此处,$匹配字符串的结尾。)

The rstrip将删除替换期间添加的尾随空格。

如果您使用的是 Python 3,[^\W_]默认情况下将匹配所有 Unicode 字母和数字。在Python 2中,re.U标志将启用此行为。

注意\s+在最后(?:\s+|$)会将多个空格“收缩”为 1 个空格。

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

Python 行尾正则表达式 的相关文章

  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 如何自动替换多个文件的文本内容中的字符?

    我有一个文件夹 myfolder包含许多乳胶表 我需要替换其中每个字符 即替换任何minus sign by an en dash 只是为了确定 我们正在替换连字符INSIDE该文件夹中的所有 tex 文件 我不关心 tex 文件名 手动执
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 将一个时间序列插入到 pandas 中的另一个时间序列中

    我有一组定期测量的值 说 import pandas as pd import numpy as np rng pd date range 2013 01 01 periods 12 freq H data pd Series np ran
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • urllib2.urlopen() 是否实际获取页面?

    当我使用 urllib2 urlopen 时 我在考虑它只是为了读取标题还是实际上带回整个网页 IE 是否真的通过 urlopen 调用或 read 调用获取 HTML 页面 handle urllib2 urlopen url html
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • ValueError:无法插入 ID,已存在

    我有这个数据 ID TIME 1 2 1 4 1 2 2 3 我想按以下方式对数据进行分组ID并计算每组的平均时间和规模 ID MEAN TIME COUNT 1 2 67 3 2 3 00 1 如果我运行此代码 则会收到错误 ValueE
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • 使用 Doc2vec 后如何解释 Clusters 结果?

    我正在使用 doc2vec 将关注者的前 100 条推文转换为矢量表示形式 例如 v1 v100 之后 我使用向量表示来进行 K 均值聚类 model Doc2Vec documents t size 100 alpha 035 windo
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA

随机推荐

  • Python 全局变量和类功能

    我正在创建一个简单的 python 程序 它提供 SMS Inbox 的基本功能 我创建了一个 SMS Inbox 方法 store message count 0 class sms store def add new arrival s
  • 如何在使用单个测试项目时将所有 QtTestLib 单元测试结果组合到单个文件中?

    在我们的项目中 我们使用 QtTestLib 进行单元测试 原因是整个项目已经尽可能使用Qt 并且它是一个GUI应用程序 所以我们希望具有测试GUI界面的能力 我们的项目是由 MSVC 编译的 因此我们不想为每个测试都有一个单独的项目文件
  • 从数组中获取过滤后的值(范围为 10-20 之间的值)

    如何获得过滤值来自范围 10 20 之间的类似数组的值 我的数组包含 10 15 18 25 88 20 我只想打印 10 20 范围内的内容 use array intersect with range input array 10 15
  • 将 pandas 数据帧转换为 utf8

    如何将 pandas 数据帧转换为 unicode messages pandas read csv data SMSSpamCollection sep t quoting csv QUOTE NONE names label messa
  • JS/HTML5 WebSocket:无需 HTTP 调用即可连接

    好吧 我刚刚尝试了 HTML 5 中的新 WebSocket 类 并且对它们的存在感到非常兴奋 然而 我看不出它们比 AJAX 更有价值 因为它们仍然发起 HTTP 调用并且not就像传统的插座一样 这就是我在这里问的原因 有没有办法使用
  • Android Room + 窗口功能

    我尝试在房间查询中使用窗口函数 解析器抱怨我的查询 我只是尝试在 select 语句中添加 ROW NUMBER OVER ORDER BY column 表达式 如果没有此表达式 查询将正确运行 解析器错误 extraneous inpu
  • 我可以检测浏览器中可用的 async/await 吗? [复制]

    这个问题在这里已经有答案了 如标题 如何检测浏览器中的 async await es7 支持 那可能吗 与任何其他语法特征一样 应该对其进行评估才能被检测到 自从eval可以被限制 当启用 CSP 时这可能是不可能的 let isAsync
  • 如何有条件地导入 xslt 中的样式表?

    有没有办法在检查某些条件后导入样式表 例如 如果变量 a 的值 1 则导入 1 xsl 否则导入 2 xsl 大家好 请问有什么办法可以导入吗 检查一些样式表后 状况 就像 如果变量 a 的值 1 然后导入 1 xsl 或者导入 2 xsl
  • node_modules 未被识别为内部或外部命令

    我正在尝试使用 appium jasmine 和 Perfecto mobile 编写测试自动化脚本 我正在使用从以下 URL 克隆的项目和我自己的配置Appium JavaScript 示例 问题是当我执行npm test命令我收到以下错
  • 从单独的路由文件内部访问快速“应用程序”对象的最佳方法是什么?

    在 Express 4 中 默认情况下 路由是从单独的文件加载的 app use routes 将加载routes index js 我有一个附加到的第三方库app本身 是否有首选的访问方式app从内部routes index js 我考虑
  • 关闭呈现的视图控制器

    我有一个理论问题 现在我正在阅读苹果的视图控制器 guide 他们写 当需要关闭呈现的视图控制器时 首选方法是让呈现视图控制器关闭 它 换句话说 只要有可能 同一个视图控制器 提出视图控制器还应该负责 驳回它 尽管有多种方法可以通知 呈现视
  • glibc 的 fprintf() 实现是线程安全的吗?

    fprintf 是线程安全的吗 glibc 手册似乎是这样 但我的应用程序使用对 fprintf 的单个调用写入文件似乎混合了来自不同进程的部分写入 编辑 澄清一下 有问题的程序是lighttpd插件 并且服务器正在运行多个工作线程 查看该
  • Symfony 手动连接参数 - 'arguments' 与 'bind'

    我尝试找出如何手动注入参数DefaultController 没有自动装配 我发现有两种方法可以实现这一目标 我可以用arguments services defaults autowire false autoconfigure true
  • 使用 LIKE 搜索 GROUP_CONCAT

    我有一个 SQL 查询 它使用 GROUP CONCAT 让所有人附加到某个订单 有没有办法可以在 GROUP CONCAT 字段内进行搜索 SELECT orders orderID GROUP CONCAT contacts first
  • 结构解引用运算符(运算符->)

    我正在为迭代器编写一个薄模板包装器 在通过结构取消引用运算符时遇到了绊脚石 主要是因为指针没有 include
  • 填充可用空间的 CSS 布局

    我正在尝试做一个看似简单的网页布局 但我遇到了困难 I d like做一切事纯粹用CSS 没有桌子把事情搞砸 并且没有 JavaScript动态调整事物的大小 我想要 具有固定高度的标题 固定高度的页脚 具有固定宽度的左侧边栏 具有固定宽度
  • UICollectionViewLayoutlayoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath

    我正在实现自定义流程布局 它有两种主要方法来覆盖以确定单元格的位置 layoutAttributesForElementsInRect and layoutAttributesForItemAtIndexPath 在我的代码中 layout
  • 如何将单行与sql中列中的数字相乘

    就我而言 有订单和订单头寸 每个订单位置都有一个数量 例如 但现在我需要每个 位置元素 一行 这是我想要的输出 我的想法是使用rank over 获得增量数 但我不知道如何使用该数量作为乘数 是否有一个聪明的解决方案来使用单列作为 行乘法器
  • 删除变量上的重复项而不进行排序

    我有一个变量 其中包含以下空格分隔的条目 variable apple lemon papaya avocado lemon grapes papaya apple avocado mango banana 如何在不排序的情况下删除重复项
  • Python 行尾正则表达式

    我正在尝试编写一个正则表达式 在点之前和之后添加一个空格 但是 我只希望在点后有空格或行尾时出现此情况 但是 对于行尾情况 我无法这样做 Eg I want a hotel gt gt I want a hotel my email is