使用常规表达式提取和操作字符串的强大命令行工具

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版

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我是否需要构造一个带有*非final*但不可变字段的不可变类?   java如何使用jaxb读取属性?   java为什么不打印空值以外的任何内容?   java Struts2如何在不使用struts的情况下重定向到操作。xml?   java方法参数未在其实现中使用   在Java中更改终端内部的变量   Spring中的java依赖项注入失败   java如何使用getAttribute Selenium防止获取重复的HREF   优先级队列的java顺序不符合预期   java如何使用Spring TaskExecutor在应用程序的所有请求中使用单个任务池   java Firebase RecyclerView不会从数据库中检索项目并将其显示在屏幕上。屏幕是空的   java将YUV_420_888转换为字节数组   spring停止使用Java缓存文件   java在执行maven clean安装时,我在eclipse智能家居中遇到了这种错误   stream Java=下载缓冲区未满?冲洗/缓冲是如何工作的?   查询SQL server时重置java JDBC连接   java如何避免在两个函数中使用相同的逻辑。   转换java。lang.Boolean到Scala Boolean