使用常规表达式提取和操作字符串的强大命令行工具
rextract的Python项目详细描述
用法
< Buff行情> < Buff行情>用法:rextract(options)[regex pattern]([output format])
< Buff行情>从stdin读取并逐行应用提供的regex模式,
可选地以"输出格式"指定的格式输出。
选项:
===
< Buff行情>--调试启用调试模式
–版本打印版本并退出
用法:
><<P/> < Buff行情>
一些用法示例可以是:
- 从输入中提取一个或多个组
- 从输入中省略一个或多个组
- 重新排列输入
- 使用一些文本输入(csv?)执行一系列命令
- 创建报告
- 还有很多人!
正则表达式模式格式/提示:
==
< Buff行情>rextract支持扩展正则表达式语法(python/perl风格),特别是
由标准python"re"模块提供。
一些例子可以在https://docs.python.org/3/howto/regex.html" rel="nofollow">https://docs.python.org/3/howto/regex.html
括号中包含的每个图案都算作一组。
从左到右为每组分配一个数字值,从1开始。
您可以将一个名称分配给一个组,如下所示:
< Buff行情>(?)p<;我的组名>;[a-za-z][a-za-z0-9]+)
^这将创建一个组,您可以将其引用为:
${我的组名}
组必须以字母a-z或下划线(''u')开头,
< Buff行情> 并且只能包含字母a-z(任意大小写)、数字0-9或下划线。命名一个组,例如:(?p<;名称>;)
正则表达式将在行内的任何点匹配,除非
存在"^"(行首)或"$"(行尾),在这种情况下,它
必须符合这些限制。
因此,无需在前缀中加上".*"即可匹配任何位置
在中间。
如果一行不匹配,则不会将其提供给用作输出,
< Buff行情>它会被悄悄地跳过。不能对输出进行逻辑格式化
来自未知输入。
您可以在模式中指定"not",方法是用插入符号('^')开始一个组 < Buff行情>
例如,要匹配一行不以分号开头,可以使用a
图案线:
< Buff行情> ^([^;].*)输出格式
==
< Buff行情>"output format"参数可以与bash字符串完全相同-
除了前面带有
未逃过的美元($)符号。这些表示数字或
按名称命名。有关创建组的详细信息,请参见上面的部分。如果省略"output format"参数,则整个匹配区域将
逐行打印。这相当于提供
"${0}"的"输出格式"。
数字组
----
< Buff行情>第一组使用${1}或$1,第三组使用${3}。
数值组在正则表达式中显示时从左到右进行分配,
即使组是有条件的,也不考虑嵌套。
例如:
< Buff行情> "((黄色白色)切达干酪)((整体部分脱脂)莫泽雷拉)""黄白切达"是第一组,
"黄白"是第二组
"全部部分脱脂莫泽雷拉"是这个词RD组
"全部部分脱脂"是第四组。
如果组不匹配,则为其分配空字符串的值。
使用特殊组$0或${0]}打印整个匹配部分。
命名组
----
< Buff行情>如果您将任何组定义为具有名称(请参阅上面有关此主题的部分),
p<;my_group>;…),然后您可以在输出中引用该组
作为$my_group或${my_group}。
注意:请确保用单引号引用"output format"参数,
< Buff行情> 或转义美元[$]符号(使用$)。Tim Savannah的Rextract 1.0.0版