如何转义字符串以在 Boost Regex 中使用

2024-07-03

我刚刚开始了解正则表达式,并且正在使用 Boost Regex 库。

我需要使用包含特定 URL 的正则表达式,但它令人窒息,因为显然 URL 中存在为正则表达式保留的字符,需要转义。

Boost 库中是否有任何函数或方法可以转义此类用途的字符串?我知道大多数其他正则表达式实现中都有这样的方法,但我在 Boost 中没有看到这样的方法。

或者,是否有需要转义的所有字符的列表?


. ^ $ | ( ) [ ] { } * + ? \

讽刺的是,您可以使用正则表达式来转义您的 URL,以便将其插入到正则表达式中。

const boost::regex esc("[.^$|()\\[\\]{}*+?\\\\]");
const std::string rep("\\\\&");
std::string result = regex_replace(url_to_escape, esc, rep,
                                   boost::match_default | boost::format_sed);

(旗帜boost::format_sed http://www.boost.org/doc/libs/1_56_0/libs/regex/doc/html/boost_regex/ref/match_flag_type.html指定使用sed的替换字符串格式。在 sed 中,转义&将输出与整个表达式匹配的任何内容)

或者,如果您对 sed 的替换字符串格式不满意,只需将标志更改为boost::format_perl,你可以使用熟悉的$&引用与整个表达式匹配的任何内容。

const std::string rep("\\\\$&");
std::string result = regex_replace(url_to_escape, esc, rep,
                                   boost::match_default | boost::format_perl);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何转义字符串以在 Boost Regex 中使用 的相关文章

  • TortoiseGit / Winforms:合并时解析 Resource.resx

    我对 TortoiseGit 还很陌生 想知道如果 resx 文件发生冲突 如何在合并过程中解决它 例如 我可以从菜单中选择 使用他们的 尝试进行拉动和推动 但这是正确的方法吗 我可以以某种方式使用他们的并通过我的项目更改重建它吗 差异 以
  • VSTO 功能区库,看起来像 Word 2010 中的样式选择器

    我正在用 C 编写功能区 COM 加载项 并尝试在新选项卡上创建可用模板文件库 是否可以将图库设置为像 Word ie 中主页选项卡上的样式选择器图库一样打开 显示图库中的所有文件名 MS 不允许其他人使用带内画廊在 Outlook 200
  • 使用正则表达式替换换行符

    如何使用正则表达式替换所有类型的换行符 CR LF 和 CrLf 我尝试过 n 和 r 的不同组合 但没有找到全部 formatedString System Text RegularExpressions Regex Replace te
  • 如何在C语言中删除linux上的root权限?

    我想以非 root 用户身份分叉 执行和编程 同时父级保留 root 权限 伪代码 pid fork if pid 0 if RunAsUser ConvertStringToUserId John false stop if RunAsU
  • 哪个STL容器具有线程安全的插入过程?

    哪个STL容器具有线程安全的插入过程 我希望多个线程同时插入同一个容器中 欢迎除 STL 即 Boost 之外的任何实现 STL 容器不是线程安全的 如果您愿意的话 您必须通过自己的同步来强加这一点
  • 测试用户输入数组中的重复项的最有效方法是什么?

    我正在尝试编写一个模拟器来玩强力球彩票 程序会要求5数字 又名白球 并输入到6元素数组和另一个数字 红色强力球 放入6th 元素 我需要弄清楚如何首先测试重复项5元素但6th 不需要是唯一的 我有一个循环 我认为可以工作 但它甚至不执行并且
  • 使用c#在ms access中更新

    有人可以帮助我的代码有什么问题吗 它是一个更新函数 在我的调试过程中它可以正确执行 但它不会更新我的数据库 我已经在寻找这个问题的答案 但仍然没有成功 我还尝试创建一个新的数据库 希望它有问题 但仍然没有效果 private void up
  • 多次声明全局变量时,GCC 没有警告或错误[重复]

    这个问题在这里已经有答案了 假设有以下代码 File a c include
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • OpenCV 图像处理——C++、C、Python

    我正在考虑在一个项目中尝试 OpenCV 并注意到它有 C C 和 Python 我正在尝试确定是否应该使用 C C 还是 Python 并且希望使用具有最佳 OpenCV 支持的任何语言 仅从查看各种文档的索引页来看 C 绑定可能比其他绑
  • 无堆栈协程与堆栈协程有何不同?

    背景 我问这个问题是因为我目前有一个具有许多 数百到数千 线程的应用程序 这些线程中的大多数在很大一部分时间内处于空闲状态 等待将工作项放入队列中 当工作项可用时 它会通过调用一些任意复杂的现有代码来处理 在某些操作系统配置上 应用程序会遇
  • 如何解决有关 TcpListener: 请使用 TcpListener(IPAddress localaddr, int port) 的警告?

    我创建了一个新表单 在顶部我做了 using System using System Collections Generic using System ComponentModel using System Data using Syste
  • 安全地抛出在另一个线程上创建的异常 C#

    我想在线程A中捕获异常 然后将异常对象传递给线程B 并从线程B中抛出它 这样安全吗 Thread A try Code that throws exceptions catch Exception e sendToOtherThread e
  • 创建新选项卡并管理它们 - Selenium

    这是我的代码 var chromeOptions new ChromeOptions chromeOptions AddArguments headless driver new OpenQA Selenium Chrome ChromeD
  • Blazor - 重定向到一个解决方案中另一个项目中的页面

    我遇到了这样的情况 在一个解决方案中 想要将用户从一个项目的页面重定向到另一个项目的页面 这很重要 我在 blazor 服务器上做 任何人都可以教我一些东西吗 您始终可以注入 NavigationManager 通过此您可以将用户重定向到另
  • 如何使信号客户端避免表单身份验证?

    我的 MVC 网站在 web config 中有表单授权 现在所有的页面都需要通过授权才能被查看 但是现在我有一个控制台程序 C 控制台程序 这个程序需要发送一些消息到 SignalR 集线器 但是我的 signalR Hub 在我的 MV
  • 如何在 JObject 中添加或更新 JProperty 值

    我目前正在使用以下扩展方法来执行此任务 但似乎应该有一些现有的包含方法或扩展来执行此任务 或至少是其中的一个子集 如果里面没有任何东西Json NET那么推荐的流程是什么 或者我如何更改下面的代码以更接近推荐的流程 public stati
  • Qt:如何处理用户按下“X”(关闭)按钮的事件?

    在 Qt 中 与用户单击窗口框架的 X 关闭 按钮 即此按钮 事件相对应的插槽是什么 如果没有这个插槽 在用户按下关闭按钮后是否有其他方法来触发功能 如果你有一个QMainWindow你可以覆盖closeEvent method inclu
  • 我是否需要显式关闭并处置 SQLConnection?

    SqlDataReader rdr null con new SqlConnection objUtilityDAL ConnectionString using SqlCommand cmd con CreateCommand try i
  • GO 语句破坏了 .NET 中的 SQL 执行

    我有一个非常简单的 C 命令 shell 应用程序 它执行 SQL Server 生成的 SQL 脚本来编写模式和数据脚本 它在 GO 声明中爆炸了 错误信息 GO 附近的语法不正确 这是完整的 sql 脚本 Object Table gy

随机推荐

  • 通过 NSOutputStream 发送 UIImage [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 通过 NSOutputStream 发送 UIImage [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 将 Java 数组转换为 Clojure 列表或序列?

    如何将 Java 数组转换为 Clojure 序列数据结构 例如列表或其他序列 This question https stackoverflow com q 16647261 712526展示如何进行相反的操作 Clojure 文档展示了
  • 将 Java 数组转换为 Clojure 列表或序列?

    如何将 Java 数组转换为 Clojure 序列数据结构 例如列表或其他序列 This question https stackoverflow com q 16647261 712526展示如何进行相反的操作 Clojure 文档展示了
  • Pandas DataFrame 检查一组列中是否存在列值

    我有一个像这样的数据框 简化示例 id v0 v1 v2 v3 v4 1 10 5 10 22 50 2 22 23 55 60 50 3 8 2 40 80 110 4 15 15 25 100 101 并且想要创建一个附加列 该列为 1
  • Pandas DataFrame 检查一组列中是否存在列值

    我有一个像这样的数据框 简化示例 id v0 v1 v2 v3 v4 1 10 5 10 22 50 2 22 23 55 60 50 3 8 2 40 80 110 4 15 15 25 100 101 并且想要创建一个附加列 该列为 1
  • 从 Java 向 Safari 发送推送通知

    我正在尝试让 Web Push API 与我的应用程序和 iOS 上的 Safari 配合使用 我可以在 Safari 中正常注册 但是 当尝试将我的请求发送到端点时 我收到 403 原因是 BadJwtToken 我已验证身份验证标头中发
  • 从 Java 向 Safari 发送推送通知

    我正在尝试让 Web Push API 与我的应用程序和 iOS 上的 Safari 配合使用 我可以在 Safari 中正常注册 但是 当尝试将我的请求发送到端点时 我收到 403 原因是 BadJwtToken 我已验证身份验证标头中发
  • 如何在不使用循环的情况下从数据表中过滤空行?

    我的情况是数据表可能包含大量行 因此 我无法使用循环迭代和更新数据表 我尝试过以下代码 from row in table AsEnumerable where table Columns Any col gt row IsNull col
  • 如何在不使用循环的情况下从数据表中过滤空行?

    我的情况是数据表可能包含大量行 因此 我无法使用循环迭代和更新数据表 我尝试过以下代码 from row in table AsEnumerable where table Columns Any col gt row IsNull col
  • 将具有外键的第三个表中的记录复制到其他表

    我有三个表 表 1 作为主表 表 2 作为表 1 的详细信息 表 3 作为表 2 的详细信息 TABLE1 PK1 INTEGER FD1 VARCHAR 100 TABLE2 PK2 INTEGER FK1 INTEGER FD2 VAR
  • 将具有外键的第三个表中的记录复制到其他表

    我有三个表 表 1 作为主表 表 2 作为表 1 的详细信息 表 3 作为表 2 的详细信息 TABLE1 PK1 INTEGER FD1 VARCHAR 100 TABLE2 PK2 INTEGER FK1 INTEGER FD2 VAR
  • 如何在 PHP 中访问 JSON 解码数组

    我返回了一个数组JSON数据类型来自javascript to PHP 我用了json decode data true 将其转换为关联数组 但是当我尝试使用关联数组时index 我收到错误 Undefined index 返回的数据是这样
  • 如何在 PHP 中访问 JSON 解码数组

    我返回了一个数组JSON数据类型来自javascript to PHP 我用了json decode data true 将其转换为关联数组 但是当我尝试使用关联数组时index 我收到错误 Undefined index 返回的数据是这样
  • 帮助将 Reflector 解构转化为可编译代码

    所以我正在 Reflector ing 一些框架 2 0 代码并最终得到以下解构 fixed void voidRef3 void someMember 这不会编译 因为 The right hand side of a fixed sta
  • 帮助将 Reflector 解构转化为可编译代码

    所以我正在 Reflector ing 一些框架 2 0 代码并最终得到以下解构 fixed void voidRef3 void someMember 这不会编译 因为 The right hand side of a fixed sta
  • 带参数的 Rails link_to 远程

    我想使用链接触发模型的远程操作 基本上 这个链接所需要做的就是触发一个带有一个参数的方法 这是我的代码 link to Move Up reorder collection folder path collection folder reo
  • 带参数的 Rails link_to 远程

    我想使用链接触发模型的远程操作 基本上 这个链接所需要做的就是触发一个带有一个参数的方法 这是我的代码 link to Move Up reorder collection folder path collection folder reo
  • 如何转义字符串以在 Boost Regex 中使用

    我刚刚开始了解正则表达式 并且正在使用 Boost Regex 库 我需要使用包含特定 URL 的正则表达式 但它令人窒息 因为显然 URL 中存在为正则表达式保留的字符 需要转义 Boost 库中是否有任何函数或方法可以转义此类用途的字符
  • 如何转义字符串以在 Boost Regex 中使用

    我刚刚开始了解正则表达式 并且正在使用 Boost Regex 库 我需要使用包含特定 URL 的正则表达式 但它令人窒息 因为显然 URL 中存在为正则表达式保留的字符 需要转义 Boost 库中是否有任何函数或方法可以转义此类用途的字符