如何从正则表达式组中排除字符?

2024-01-12

我想从字符串(python)中删除除连字符之外的所有非字母数字字符。 如何更改此正则表达式以匹配除连字符之外的任何非字母数字字符?

re.compile('[\W_]')

Thanks.


您可以只使用否定字符类来代替:

re.compile(r"[^a-zA-Z0-9-]")

这将匹配字母数字范围或连字符之外的任何内容。根据您当前的正则表达式,它还匹配下划线。

>>> r = re.compile(r"[^a-zA-Z0-9-]")
>>> s = "some#%te_xt&with--##%--5 hy-phens  *#"
>>> r.sub("",s)
'sometextwith----5hy-phens'

请注意,这也替换了空格(这可能正是您想要的)。


Edit:SilentGhost 建议引擎使用量词进行处理可能会更便宜,在这种情况下您可以简单地使用:

re.compile(r"[^a-zA-Z0-9-]+")

The +只会导致任何连续匹配的字符同时全部匹配(并被替换)。

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

如何从正则表达式组中排除字符? 的相关文章

随机推荐

  • Java:包不存在

    我在目录 E stuff Java gt 我创建了一个包A package pack public class A public void methodA System out println MethodA 为了编译 我使用了以下语句 j
  • 使纹理 LibGDX 居中

    我试图在 LibGDX 中将 256px X 256px 图像居中 当我运行我正在使用的代码时 它会在窗口的右上角渲染图像 对于我使用的相机的高度和宽度Gdx graphics getHeight and Gdx graphcis getW
  • UISearchBarStyleMinimal 在 UISearchBar 顶部显示范围按钮

    当我应用 UISearchBarStyleMinimal 时 我的范围按钮会绘制在搜索栏上 这是常规样式的样子 当我应用该样式时 我得到这样的结果 有谁知道为什么会发生这种情况 以及我能做些什么来解决它 当我删除范围按钮时 它看起来非常好
  • ModuleNotFoundError:尝试安装 dash 时没有名为“_brotli”的模块

    我尝试在 mac 操作系统上安装 dash 在 python 脚本上运行 import dash 时出现以下错误 Traceback most recent call last File app py line 16 in
  • “错误:没有匹配的函数可供调用”

    我正在使用键盘 并试图提高我使用 C 的技能 我以前从未使用过模板 所以我尝试研究如何使用它们 下面的代码是结果 不幸的是 它不起作用 我确实尝试寻找问题的解决方案 但由于我没有太多使用模板的经验 因此我无法在我的问题和其他问题之间建立任何
  • Firestore:从 id = x 的“子”集合中获取所有项目

    我正在使用 cloud firestore 作为后端数据库 因为我不太熟悉它 我对以下内容有点困惑 数据库设置 Messages collection gt itemId doc gt itemMessages collection gt
  • 在代码隐藏中更改文本框背景颜色

    我如何将代码隐藏中的文本框背景颜色更改为如下所示 Textbox1 BackColor F2F0E1 代替 Textbox1 BackColor System Drawing White 你可以尝试这样的事情 Textbox1 BackCo
  • 如何捕获引导日期选择器更改事件?

    现在我试图在用户更改日期后做一些事情 但好像我的ng change被忽略 这是我的代码示例
  • 通过 AddThis API 自动缩短电子邮件/Facebook 与 Bitly 共享的 URL

    使用 AddThis 中的内置 Bit ly 缩短服务时 我无法缩短 AddThis 电子邮件弹出窗口中显示的 URL 它适用于 Twitter 但不适用于 Facebook 和电子邮件 支持吗 var addthis share url
  • 删除特定字符之后的所有字符

    我有这样的话 Sams like costco Jecy penny like sears 在Java中 我想获取这个字符串并得到输出 Sams Jecy penny 有什么办法可以删除之后的所有字符 and 三个选项 Use indexO
  • 如何创建 RAR 压缩文件,压缩文件名中包含当前日期?

    我有文件夹D data有很多子文件夹和文件 我想用批处理文件将该文件夹存档到指定目录 并在存档文件名中添加当前日期 例如F 11 08 2016 data 到目前为止我的命令行是 C Program Files WinRAR rar exe
  • 在同一个表中回显具有相同列名的多个值

    我有 2 个表 一个用户表和一个交易表 看起来像 我现在的代码结构是 我面临的问题是我试图回显用户名 在一种情况下必须是接收者 而在另一种情况下必须是提供者 专家提示 Never use SELECT 除非您确切知道这样做的原因 否则在软件
  • Lambda 表达式 > 和 MethodInfo

    在将项目从VS2010迁移到VS2012时 我遇到了以下问题 该项目大量使用反射 为了从接口获取 MethodInfo 放置了以下代码 Expression
  • 在 DOCTYPE XSLT 2.0 Saxon9he 中插入 ENTITY 声明

    我的任务是将 XML 文档分解为单独的工作包 我遇到的唯一问题是在 DOCTYPE 中插入图形实体声明 如下所示 gt 不用介意实体名称中的扩展名 这就是他们在这里所做的 无论如何 实体将由所有 boardno可以在主 XML 文件中找到
  • Python Selenium - 弹出类似身份验证的警报

    嘿 Brilliant Stack Overflow 社区 我遇到了一个关于处理警报的有趣场景 例如弹出的用户身份验证框 1 使用的网站 练习网站 https the internet herokuapp com https the int
  • 具有特殊字符的 CSS 类

    我有一个 Web 应用程序 需要使用 CSS 文件来操作某些元素 CSS 类包含方括号和其他特殊字符 至少chrome似乎不直接接受它们 div class 123 div 这门课有效吗 有没有办法使用类名 我想 profile redSt
  • 将前端和后端部署到 azure 上的同一 Web 服务

    我有一个 Web 应用程序 它有一个单独的 Node JS 后端和 Angular 前端 是否可以让它们都在同一个 Azure Web 服务上运行 或者我需要为每个服务提供独立的服务吗 我的nodejs服务器只是一个轻量级API 它为我的角
  • 如何同时执行多个Guzzle请求?

    我可以使用 Guzzle 执行单个请求 并且到目前为止我对 Guzzle 的性能非常满意 但是 我在 Guzzle API 中读到了有关 MultiCurl 和批处理的内容 有人可以向我解释如何同时发出多个请求吗 如果可能的话异步 我不知道
  • 基于类属性实现接口,无需反射

    这一页 http www postsharp net aspects code introductionPostSharp 网站上有以下预告片 您将遇到的常见情况之一是需要在大量类上实现特定接口 这可能是INotifyPropertyCha
  • 如何从正则表达式组中排除字符?

    我想从字符串 python 中删除除连字符之外的所有非字母数字字符 如何更改此正则表达式以匹配除连字符之外的任何非字母数字字符 re compile W Thanks 您可以只使用否定字符类来代替 re compile r a zA Z0