正则表达式 - 删除两个标点符号之间的空格,但不删除标点符号和字母之间的空格

2024-06-24

我有以下正则表达式用于删除标点符号之间的空格。

re.sub(r'\s*(\W)\s*', r'\1', s)

它在我的几乎所有测试用例中都运行良好,除了这个:

This is! ? a test! ?

为此我需要有

This is!? a test!?

and get

This is!?a test!?

我如何不删除它们之间的空间?和“一个”?我缺少什么?


这应该有效:

import re

str = 'This is! ? a test! ?'
res = re.sub(r'(?<=[?!])\s+(?=[?!])', '', str)
print(res)

Output:

This is!? a test!?

解释:

(?<=[?!])   # positive lookbehind, make sure we have a punctuation before (you can add all punctuations you want to check)
\s+         # 1 or more spaces
(?=[?!])    # positive lookahead, make sure we have a punctuation after
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式 - 删除两个标点符号之间的空格,但不删除标点符号和字母之间的空格 的相关文章

  • 如何将 typeshed 与 mypy 一起使用?

    我克隆了typeshed https github com python typeshed但我不知道如何告诉 mypy 使用它包含的类型提示 我在 mypy help 中没有看到任何选项 mypy 存储库确实包含对 typeshed 存储库
  • 搜索/替换 xml 内容

    我已经成功地使用 xml etree ElementTree 解析 xml 搜索内容 然后将其写入不同的 xml 然而 我只是处理单个标签内的文本 import os sys glob xml etree ElementTree as ET
  • 使用 setuptools (pip) 时如何打印警告和错误

    我正在使用 setuptools 来打包代码 以便可以使用以下命令轻松安装它 cd project name pip install 在设置过程中 我想警告用户有关预先存在的配置文件的信息 并在系统上打印一些安装后说明 例如 etc pro
  • 我如何知道Python的unicode函数识别的所有支持的编码

    Python 有一个unicode将字节流转换为 unicode 字符串的内置函数 我只是希望我能查询所有可用的encoding在我的系统上 但如何 这个问题的原因是 有人使用 MAC OS X 向我发送了一封内容编码为 iso 2022
  • 为什么Flask后台线程获取错误的数据库信息?

    为了将实时数据库信息推送到客户端 我在服务器端使用flask socketio 通过使用websocket将所有实时数据库信息推送到客户端 我的视图文件有一个片段 from models import Host from flask soc
  • 使用 Python 访问内存映射文件

    我希望利用激战 2 中的内存映射文件 该文件旨在链接到 Mumble 以获得位置音频 该文件包含有关字符坐标的信息和其他有用的信息 我已经能够使用此脚本访问坐标信息 import mmap import struct last while
  • 为什么 scikit-learn SVM.SVC() 非常慢?

    我尝试使用SVM分类器来训练大约10万个样本的数据 但我发现它非常慢 甚至两个小时后也没有任何反应 当数据集有大约 1k 个样本时 我可以立即得到结果 我还尝试了 SGDClassifier 和朴素贝叶斯 速度相当快 几分钟内就得到了结果
  • 使用 pytherejs 嵌入小部件:错误的视角和相机观察

    我在用pythreejs可视化一些 3D 模型 在 Jupyter 笔记本上可视化模型时 一切都按预期进行 但是当尝试将小部件嵌入 HTML 文档时 我面临两个问题 看起来相机在加载时正在查看 0 0 0 而不是预期的那样 一旦您与小部件交
  • Python Jinja2 调用宏会导致(不需要的)换行符

    我的 JINJA2 模板如下所示 macro print if john name if name John Hi John endif endmacro Hello World print if john Foo print if joh
  • 如何向 Jupyter (ipython) 笔记本自动添加扩展?

    我已经安装了扩展 calico document tools 我可以使用以下命令从 Jupyter 笔记本中加载它 javascript IPython load extensions calico document tools 如何为每个
  • 如何在Python中将N毫秒添加到日期时间

    我正在设置一个日期时间变量 fulldate datetime datetime strptime date time Y m d H M S f 其中日期和时间是适合日期时间性质的字符串 如何将此日期时间增加 N 毫秒 Use timed
  • 如何在Java中验证字符串是否是有效的URL(包括深层链接)[重复]

    这个问题在这里已经有答案了 如何在 Java 中验证字符串是否是有效的 URL 包括深层链接 对于以下测试用例 该方法应返回 true http www example com gizmos https www example com gi
  • numpy.polyval() 的反函数

    我想知道 np polyval 是否有一个方便的反函数 我在其中给出 y 值并求解 x 我知道我可以做到这一点的一种方法是 import numpy as np Set up the question p np array 1 1 10 y
  • 如何在 shell 脚本中使用正则表达式提取字符串?

    我想使用正则表达式提取字符串的一部分 例如 如何从 name多变的 name a href http www google com here a domain name apply some regex on name Using bash
  • Python httplib 和 POST

    我目前正在使用别人编写的一段代码 它用httplib向服务器发出请求 它以正确的格式提供所有数据 例如消息正文 标头值等 问题是 每次尝试发送 POST 请求时 数据都在那里 我可以在客户端看到它 但没有任何内容到达服务器 我已经阅读了库规
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • Python for 循环前瞻

    我有一个 python for 循环 其中我需要向前查看一项以查看在处理之前是否需要执行某项操作 for line in file if the start of the next line 0 perform pre processing
  • 用于监视文件夹和更新数据库的 Python 守护进程

    这专门用于管理 MP3 文件 但它应该可以轻松地适用于任何包含大量文件的目录结构 我想找到或编写一个守护程序 最好用Python 来监视一个包含许多子文件夹的文件夹 这些子文件夹都应该包含X个MP3文件 每当添加 更新或删除文件时 它都应该
  • tkinter 库 treectrl 转换为 exe 安装程序时出现 cx_freeze 错误

    我使用的是 python 版本 3 7 我使用了这个名为 treectrl 的外部库 当我运行 py 文件时它工作得很好 但是当我使用 cx freeze 转换为 exe 文件时 它给了我错误 NomodulleFound 名为 tkint
  • Mac 无法安装 Tensorflow

    我检查了我的 pip3 和 python3 版本 tensorflow MacBook Pro de Hector 2 tensorflow hectoresteban pip3 V pip 10 0 1 from Users hector

随机推荐

  • 对齐类型并按值传递参数

    按值传递对齐类型或具有对齐类型的结构不适用于某些实现 这会破坏 STL 容器 因为某些方法 例如 resize 按值获取参数 我使用 Visual Studio 2008 运行了一些测试 但不完全确定按值传递何时以及如何失败 我主要关心的是
  • WPF 通过宽高比调整 UserControl 的大小

    我有一个 UserControl 并且该 UserControl 必须根据宽高比调整大小 这意味着 宽度 高度 2 1 目前我正在使用这段代码 protected override Size ArrangeOverride Size arr
  • 将方法定为最终方法的推理

    抱歉 这里有一个简单的问题 刚刚在我的笔记中发现了一些我不明白的与使方法最终相关的内容 我的笔记声称您应该将方法定为最终方法 原因如下 使得强制不变量变得不可能 字符串应该表现为字符串 我不太明白这是什么意思 有人可以帮我分解一下吗 多谢
  • PHP 7.2 - 当函数体位于字符串中时如何动态创建匿名函数

    当字符串中有函数体时 如何动态创建匿名函数 For e g user John Doe body echo Hello user myFunct function user body How do I have function body
  • 从帮助菜单中删除(或自定义)“搜索”

    我的应用程序有默认的 帮助 菜单 我删除了 帮助 条目 并添加了一个链接到我网站上的论坛的支持条目 帮助菜单笔尖如下所示 但是一旦我启动并运行应用程序 就会出现一个新的菜单项 我怎样才能让搜索消失 或者更好的是 我怎样才能让它启动一个带有参
  • maven - 如何构建具有依赖项的 uberjar

    我有一个生成 jar 文件的 Maven 模块 我被要求开发几个其他 uberjar 文件 作为构建过程的副产品 我还被告知这 2 个 jar 文件是小程序 jar 文件 需要包含 Maven 模块依赖项中的一些类 我环顾四周 缩小到这 3
  • 如何在 Android 中将 EditText 粘在软键盘上

    我正在尝试制作如下图所示的内容 其中键盘会在活动开始时自动打开 并且EditText发送按钮粘在键盘上 使用以下代码在 Activity 启动时自动弹出软键盘 InputMethodManager imm InputMethodManage
  • 在 PowerShell 中返回具有单个元素的数组

    这应该非常简单 我需要从函数返回哈希表数组 当有多个哈希表时 这是有效的 但当只有一个哈希表时 结果不是数组 我不想测试结果是否是数组 function GetArrayWith1Hashtable array hashtable hash
  • Eclipse 中的 Tomcat 配置

    我将 Eclipse Luna 与 Tomcat 8 一起使用 并且对配置文件的不同位置感到困惑 我已在本地计算机上安装了 Tomcat 并在 Eclipse 中配置 Tomcat 如下所示 所以涉及到4个目录 a Catalina 主目录
  • 带有徽章编号的 UISegmentedControl

    就像标签栏一样 我想在其上显示徽章UISegmentedControl 因为我看不到任何预定义的方法UISegmentedControl就像可用于UITabBar 我考虑过将徽章作为图像添加到其顶部 但也许有更好的方法 Here https
  • 从 Zillow API 中提取 Zillow 租金数据

    我正在使用 Zillow API 但在检索租金数据时遇到问题 目前我正在使用 Python Zillow 包装器 但我不确定它是否适用于提取租金数据 这是我使用的 Zillow API 的帮助页面 https www zillow com
  • iOS。 BLE。特征写无响应 - 如何使其工作?

    这是我的第一个问题 不要对我要求太高 我想获得一些建议 如何使用 CBCharacteristicWriteWithoutResponse 将几个字节从一个 iOS 设备发送到另一个 iOS 设备 我确实尝试使用 writeValue fo
  • LOAD_FILE() 函数的替代方案?

    我搜索并找到了这篇文章 http stackoverflow com questions 1814297 cant load file data in the mysql directory 但它对我不起作用 我是 Ubuntu 12 04
  • 如何根据列行拆分数据框

    我有一个 Excel 文件 数据框有 20 行 几行之后再次出现列名称行 我想根据列名称行划分数据帧 这是示例 x 0 1 2 3 4 x 23 34 5 6 预期输出是 df1 x 0 1 2 3 4 df2 x 23 34 5 6 考虑
  • C# 将多个字典合并为一个

    首先 我想提一下 我几天前才开始学习 C 所以我对它的了解很有限 我正在将具有相同类型键值对的多个字典合并为一个字典 以下是我的方法 该方法有效并且还可以处理重复项 var result dict1 Concat dict2 GroupBy
  • 在 Woocommerce 中的管理订单编辑页面上获取嵌套自定义字段元数据

    在 woocommerce 中 我根据购物车数量在结帐页面上添加了自定义字段 Adding Custom Fields based on Cart Count add action woocommerce before checkout b
  • 打字稿中带有谷歌标记的自定义属性

    我正在使用类型脚本 并在尝试使用 Google 标记设置自定义属性时出现以下错误 谁能建议如何使用 Google 地图标记设置自定义属性 类型参数 position LatLng 地图 任何 图标 字符串 zIndex 数字 se10 任何
  • 如何从整数生成 unicode 字符?

    我想创建一个 Unicode 字符数组 但我不知道如何将整数转换为 Unicode 表示形式 这是我到目前为止的代码 NSMutableArray uniArray NSMutableArray alloc initWithCapacity
  • 如何为Python中的imagegrab库中的区域选择提供动态值

    使用此脚本 我尝试截取特定区域桌面的屏幕截图 使用 Tkinter gui 但使用此代码我只能截取桌面修复区域 框架 的屏幕截图 所以我想做的是尝试动态设置 imagegrab 的 bbox 的值 所谓动态 我的意思是它应该只捕获由鼠标光标
  • 正则表达式 - 删除两个标点符号之间的空格,但不删除标点符号和字母之间的空格

    我有以下正则表达式用于删除标点符号之间的空格 re sub r s W s r 1 s 它在我的几乎所有测试用例中都运行良好 除了这个 This is a test 为此我需要有 This is a test and get This is