从 glob 表达式创建正则表达式

2024-01-10

我编写了用正则表达式解析文本的程序。应从用户处获取正则表达式。我打算使用 glob 语法进行用户输入,并在内部将 glob 字符串转换为正则表达式。例如:

"foo.? bar*" 

应转换为

"^.*foo\.\w\bar\w+.*"

不知何故,我需要从字符串中转义所有有意义的字符,然后我需要替换 glob * 和 ?具有适当正则表达式语法的字符。执行此操作最方便的方法是什么?


不需要不完整或不可靠的黑客攻击。 python 中包含一个用于此目的的函数

>>> import fnmatch
>>> fnmatch.translate( '*.foo' )
'.*\\.foo$'
>>> fnmatch.translate( '[a-z]*.txt' )
'[a-z].*\\.txt$'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 glob 表达式创建正则表达式 的相关文章

  • 正则表达式 - 剥离非数字并删除分(如果有)

    我目前正在开发一个 PHP 项目 需要一些正则表达式的帮助 我希望能够获取用户输入的货币值并删除所有非数字和小数位 分 Ex 2 000 00 到 2000 2 000 00 美元 到 2000 2abc000 到 2000 2 000 到
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • Python正则表达式替换引号中的文本(引号本身除外)

    例如 我有一个测试字符串 content I opened my mouth Good morning I said cheerfully 我想使用正则表达式删除双语音标记之间的文本 但不删除语音标记本身 所以它会返回 I opened m
  • 在 Google 表格中批量查找并替换正则表达式

    是否有函数 脚本或插件可以将大量正则表达式替换应用于 Google 表格中的一系列数据 我有一张包含地址列表的工作表 另一张工作表在两列中包含几十对正则表达式 例如 St 和 Street 我想替换地址中第一列短语的所有实例列出另一个中相应
  • 在Python中高效匹配多个正则表达式

    当你有正则表达式时 词法分析器就很容易编写 今天我想用Python写一个简单的通用分析器 并想出了 import re import sys class Token object A simple Token structure Conta
  • 限制正则​​表达式中的字符长度

    有没有办法限制正则表达式 http en wikipedia org wiki Regular expression最多 100 个字符with正则表达式 size size So Look at me 行不通的 我想限制数量 只允许 1
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • 正则表达式匹配任何重复两次的字符

    我试图确定提供的字符串是否包含重复两次的字符 以下是我正在使用的正则表达式 a z 1 1 但是 当针对以下字符串进行测试时 下面的两个字符串都与模式匹配 尽管我使用了 1 gt gt gt re findall r a z 1 1 abc
  • 如何使用 java.util.regex.* 执行部分匹配?

    我一直在使用 java util regex 类来实现 Java 中的正则表达式 到目前为止一切都很好 但今天我有一个不同的要求 例如 考虑模式为 aabb 现在 如果输入字符串是 aa 它肯定不匹配 但是如果我附加 bb 它仍然有可能变成
  • htaccess 301 重定向 - 删除查询字符串 (QSA)

    我一直在努力处理一些 htaccess 重定向 我只是花了一些时间在堆栈上阅读和搜索 但无法获得适合我的场景的答案 我正在将旧客户端网站的 301 重定向到新客户端 旧页面有参数查询 我想从网址中删除它 menu php idCategor
  • 修改排序比较器内的字符串

    我有以下代码 在排序比较器中 它在进行比较之前删除前缀字符串 print for sort a s STRING b s STRING foo a cmp foo b a 尽管比较和顺序是正确的 但前缀字符串已从输出中删除 以下保留前缀字符
  • C#中如何从字符串中提取十进制数

    string sentence X10 cats Y20 dogs 40 fish and 1 programmer string digits Regex Split sentence D 对于此代码 我在数字数组中获取这些值 10 20
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • 正则表达式仅匹配字母

    如何编写仅匹配字母的正则表达式 使用字符集 a zA Z 匹配 A Z 中的一个小写和大写字母 a zA Z 匹配一个或多个字母并且 a zA Z 仅匹配仅由一个或多个字母组成的字符串 and 分别标记字符串的开始和结束 如果您想匹配除 A
  • 不支持的 Perl 语法:`(?<`

    我想解析 cmd gpg list keys 的结果以将其显示在浏览器上 cmd输出是这样的 pub rsa3072 2021 08 03 SC expires 2023 08 03 07C47E284765D5593171C18F00B1
  • sed 替换 json 对象中键的值

    我想做什么 给定一个 json 事件文件 我想通过关键字定位特定事件 然后将该事件中的键值替换为 这必须使用 sed 来完成 Splunk 转发问题 我不会用细节来烦你 事件示例 message we have a response fro
  • R grep:有 AND 运算符吗?

    假设我有以下数据框 User Id Tags 34234 imageUploaded people jpg more comma separated stuff 34234 imageUploaded 12345 people jpg 我如
  • 除空字符串外的任何内容的正则表达式

    是否可以使用正则表达式来检测任何不是 空字符串 的内容 如下所示 string s1 string s2 string s3 string s4 etc 我知道我可以使用修剪等 但我想使用正则表达式 s 将匹配任何包含至少一个非空格字符的字
  • 如何检查文件是否为php?

    我想检查文件是否具有扩展名 php 如果有的话我会把它包括在内 有人可以帮我进行正则表达式检查吗 thanks 通常您不使用正则表达式 以下是一种流行的方法 extension pathinfo filename PATHINFO EXTE

随机推荐

  • 找不到模块“@vaadin/flow-frontend/Flow”

    Vaadin 突然停止构建我的库 并出现以下错误 我已经跳过 Vaadin 舞蹈 还有很多其他的东西 但我现在没有主意了 我尝试构建用于生产的库 但对于开发来说也失败了 我正在使用 Vaadin Flow Github 上的问题跟踪器重定向
  • UIImagePickerController 保存到磁盘然后加载到 UIImageView

    我有一个 UIImagePickerController 将图像以 png 格式保存到磁盘 当我尝试加载 PNG 并设置 UIImageView 时imageView image到该文件 它不显示 这是我的代码 void imagePick
  • PHP 在非静态方法上调用 self

    为什么本例中对非静态方法的 自我 调用有效 class A protected function aNonStaticMethod return class public function aEcho echo self aNonStati
  • 如何在现有环境中添加功能

    是否可以使用env 作为命名空间的替代品 在向环境添加函数之前如何检查环境是否已经存在 这与这个问题以及布伦丹的建议有关如何组织大型R程序 https stackoverflow com questions 1266279 how to o
  • Windows Defender - 以编程方式添加排除文件夹

    我出于研究目的检查了不同的键盘记录器 并偶然发现了 Refog https www refog com keylogger https www refog com keylogger 这个程序可以捕获很多系统事件 但真正引起我注意的是其他东
  • 附加类型的实体失败,因为相同类型的另一个实体已具有相同的主键值

    错误消息 附加该类型的实体失败 因为同一类型的另一个实体已具有相同的主键值 问题 如何以与下面代码中的 AttachActivity 方法所示类似的方式附加实体 我必须假设上面的错误消息的 另一个实体 部分指的是内存中存在但超出范围的对象
  • EF linq/lambda .contains(list[String])?

    有什么方法可以评估字符串是否包含列表的某些元素或列表的所有元素 使用 linq 到实体 我一直在尝试使用 predicateBuilder 和其他方法 但我对这些不是 100 EDIT 就像是 string words searchStri
  • 使用 serde 反序列化带有 Enum 键的 HashMap

    我有以下 Rust 代码 它模拟了一个配置文件 其中包括HashMap键控有一个enum use std collections HashMap use serde Deserialize Serialize derive Debug Cl
  • Google 机器学习套件,在 Android 上使用 ML Kit 识别图像中的文本错误 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我尝试安装 在 Android 上使用 ML Kit 识别图像中的文本 然后运行此应用程序 但出现此错误 com goo
  • Fabric + DigitalOcean:不可见的环境变量?

    我在 DigitalOcean 上有服务器 我使用 Fabric 来部署我的代码 我的代码依赖于环境变量 烧瓶配置 我今天遇到了一个奇怪的麻烦 在服务器上 root bashrc我已经添加了下一行 export CONFIG path to
  • 自适应卡提交操作

    我使用 JSON 格式生成了一张自适应卡 其中有两个按钮 提交 和 取消 分别返回 messageBack 消息作为提交和取消 我正在使用 C 来访问回复 但我无法弄清楚如何从自适应卡访问回复 我的json是 type AdaptiveCa
  • Heroku 上托管的 Rails 应用程序:错误 R12(退出超时)

    我有一个在heroku 上托管的Rails 3 1 4 应用程序 我已经添加了logentries add on http devcenter heroku com articles logentries 我没有触及警报的默认配置 现在我每
  • 在给定元素下通过 XPath 搜索

    我知道在 PHP 中对 DOM 执行 XPath 查询的唯一方法是DOMXPath http php net manual fr class domxpath php 它仅适用于DOMDocument public construct DO
  • 如何配置 uwsgi 将日志记录编码为 json(应用程序输出除外)

    我正在 Python Flask Web 应用程序周围运行 uwsgi 并使用这些选项 以及其他选项 在 stdout 上获取 JSON 编码的日志记录 fmt timestamp strftime FT TZ level DEBUG na
  • 关于虚函数的问题

    我有两节课 class x public virtual void hello std cout lt lt x lt lt std endl class y public x public void hello std cout lt l
  • Spring MVC 表单验证:如何使字段可选?

    我有一个表单 Spring 3 MVC 项目 我使用 DTO 数据传输对象 进行数据验证 数据被发送到控制器 我正在检查它的有效性BindingResult hasErrors 方法和适当的注释 由于我在数字字段方面遇到问题 因此我将在这里
  • 摆动组件之间的新线

    我曾多次尝试多次搜索如何格式化 java swing 元素 但我似乎找不到任何东西 我尝试学习网格袋布局 但它太复杂了 有人可以告诉我如何使用 Swing 来设置 Swing 组件的空间吗 谢谢 EDIT Code import javax
  • 当将 Google Sheets API 写入工作表放在具有从脚本读取的页面上时,写入工作表不起作用

    我在写入 Google 表格时遇到问题 我不明白为什么 我刚开始使用此 API 并且一直在使用 JavaScript 客户端库的 Google API 客户端库指南 我正在尝试构建一个 登录 网页来跟踪某人参加活动的时间 当我的页面加载时
  • FromBase64String/UTF 编码

    我的问题是基于我从 API 调用中返回的一串数据 我将原始数据传递到 FromBase64String 中 然后将字节数组编码回字符串 我期待一个有效的 pdfsharp 返回 并将其保存到文件中 下面的解码字符串值都不包含正确的数据 我知
  • 从 glob 表达式创建正则表达式

    我编写了用正则表达式解析文本的程序 应从用户处获取正则表达式 我打算使用 glob 语法进行用户输入 并在内部将 glob 字符串转换为正则表达式 例如 foo bar 应转换为 foo w bar w 不知何故 我需要从字符串中转义所有有