存档

2018年2月 的存档

正则表达式

2018/02/18 4,145

正则表达式为高级的文本模式匹配、抽取、与/或文本形式的的搜索与替换功能提供基础。简单地说,它可以匹配多个字符串。

符号

择一匹配、任意匹配

  • | 择一匹配,表示从多个模式中选择其中一个 ,如 at | home 既可以匹配 at, 也可以匹配 home
  • . 任意匹配,表示匹配除了换行符 \n 以外的任何一个字符

边界匹配

  • ^ $ 用于匹配行的开头和结尾
  • \b 用于匹配字符边界。\B 则与之相反。如 \bthe 匹配任何以 the 起始的单词,\Bthe 匹配任何不以 the 起始的单词

字符集

继续阅读

跨平台的命令行参数工具 — boost program_oprations

2018/02/16 4,923

1 例子

下例展示了 program_oprations 的基本用法:为程序定义了 3 个参数: help, host, port . 其中 host 与 port 分别定义了简写 h ,p 。host 是必填项, port 是有缺省值(80)的选填项,当 port 有输入时使用输入项,否则使用缺省值 ,当输入了错误的参数时会输出错误信息。

测试效果:

progma_options 库由三部分组成:

  • descrition , 描述组件,用于描述允许的参数及这些参数的值。
  • parser , 解析组件,用于解析输入的参数与值
  • storage , 存储组件, 它将解析器的输出转换成 字符串表示的健与 C++ 类型的值的 map, 并提供了访问这些值的接口。

对于上例来说, program_options 所做的事情,就是使用 options_description 描述了我们期望的参数,使用 parse_command_line 解析了输入参数并使用 store 将参数存储在 variables_map 中。当我们需要使用某个参数时直接从 variables_map 中获取。

继续阅读