问题标签 [pcregrep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
678 浏览

regex - PCRE 正则表达式空格

我正在尝试编写一个正则表达式来从 /etc/samba/smb.conf中提取所有非注释非空行。注释是这样的行:

  1. 从...开始 #
  2. 从...开始 ;
  3. 以任意数量的空格开头,紧跟 # 或 ;

我尝试了以下方法,但它没有正确处理评论类型 3。

这个适用于所有 3 种类型的评论:

您能解释一下为什么在字符类中添加 \s 会成功过滤掉注释类型 3 吗?

0 投票
1 回答
351 浏览

regex - 从递归 pcregrep 搜索中删除多行

在我项目中每个文件的标题中,我都有一个由 VCC 生成的注释块,其中包含文件的修订历史记录。我们已从 VCC 移出,并且不再希望在文件中包含修订历史记录,因为它已过时。

我目前有一个搜索 pcregrep 搜索,它返回我正在寻找的确切结果:

我已尝试将结果通过管道传输到 xargs sed 以及许多其他尝试从文件中删除所有返回的行但我收到各种错误,包括“文件名太长”

我想删除整个区块

0 投票
1 回答
41 浏览

regex - grep 和返回行继续?

我希望 grep 通过行继续返回结果,即输入文件,如:

我似乎无法让它工作。

0 投票
1 回答
80 浏览

regex - 如何使用 ruby​​ regexp 从 html 内容中提取 URL?

不方便解释,直接举个例子吧:

在上面我想从javascript中提取的内容中:show('f6a1ok3n4d4p','random%20strings%204',%20'site2.com')

然后将字符串“f6a1ok3n4d4p”和“site2.com”设为

http://site2.com/f6a1ok3n4d4p

和相同的 javascript:show('zsgn82c4b96d','random%20strings%204',%20'site1.com') 成为

http://site1.com/zsgn82c4b96d

我需要用 ruby​​ 正则表达式来完成

0 投票
1 回答
38 浏览

regex - 将包含通配符的字符串转换为正则表达式

我需要使用正则表达式转换包含通配符的字符串。

例如,如果我有如下输入字符串:

ab*dd*c

这表示

ab(任意数量的任意字符)d(任意数量的任意字符)c

any character任何字母数字字符或“_”在哪里。

我尝试过如下方法:

'ab([[:alnum]] | '_')*dd([[:alnum]] | '_')*c'

但是,正如您所看到的,例如,也([[:alnum]] | '\_')*匹配d,因此,我无法获得所需的匹配。

想到的是使用以下内容:

'ab[^d]*dd[^c]*c'

还有其他更好的解决方案吗?

提前致谢!

0 投票
3 回答
2528 浏览

linux - 如何检查一个文件是否是另一个文件的一部分?

我需要通过 bash 脚本检查一个文件是否在另一个文件中。对于给定的多行模式和输入文件。

返回值:

我想接收状态(如何在 grep 命令中)如果找到任何匹配项,则为 0,如果未找到匹配项,则为 1。

图案:

  • 多线,
  • 行的顺序很重要(被视为单个行块),
  • 包括数字、字母、?、&、*、# 等字符,

解释

只有以下示例应该找到匹配项:

以下不应该:


这是我的脚本:

我可以对所有模式行使用 grep 命令,但在此示例中失败:

或者即使你换行:2 和 3

不应该返回 0。

我该如何解决?请注意,我更喜欢使用本机安装程序(如果可以不使用 pcregrep)。也许 sed 或 awk 可以解决这个问题?

0 投票
1 回答
193 浏览

c++ - 为什么这个正则表达式在 pcregrep 中匹配,但在我的 c++ 代码中不匹配?

我有一个与以下完美配合的正则表达式pcregrep

现在我试图在我的 C++ 代码中包含这个正则表达式,但它不匹配(包括转义):

我正在尝试找到这样的函数体(该段落为0a十六进制):

为什么它可以在 C++ 代码中使用pcregrep而不是在 C++ 代码中使用?

0 投票
3 回答
548 浏览

sed - 查找并替换跨行的通配符?

我想输入一些这样的文本:

并摆脱这个:

到目前为止,我已经阅读并搞砸了使用 sed、grep 和 pcregrep 并且无法使其工作。看起来我可以用 Vim 做这样的事情,但我以前从未使用过 Vim,这看起来像是一种皇家痛苦。

我尝试过的东西包括:

我不确定是我没有正确使用这些命令,还是我使用了错误的工具。我很难相信没有办法使用终端来查找和替换跨行的通配符。

0 投票
1 回答
2402 浏览

cygwin - 如何在 Cygwin 上安装/启用 pcregrep?

我正在尝试使用 Cygwin 上这个 SO 问题的最佳答案中指定的 pcregrep 。我的环境是运行 Cygwin V 1.7.20(0.266/5/3) 的 Win7 64 位。

使用cygcheck -p pcregrep我得到:

我尝试使用本教程中找到的安装 pcregrep 的说明,但patch似乎不是 cygwin 安装的一部分。本教程是通过这两个与我的思路相同的 SO 问题找到的: SO Question 1SO Question 2,引用它们,以便它们出现在相关问题部分。 此手册页显示它可以存在于 cygwin 中,但尝试为其运行手册页会导致:

pcregrep 的库似乎存在于我的 cygwin 安装中,但我不知道如何编译/提取/使它们能够访问该实用程序。当我尝试运行它时,我得到了来自 bash 的未找到标准命令的响应:

所以我的问题是: 我在 cygwin 中做什么才能让我使用 pcregrep?

我不知道如何继续,我有数以万计的日志文件要处理,我需要能够通过其中两个之间的行数找到与每个相关的三行,构成这些行中的字符串和它们上方的“标题”行告诉我正确的传感器类型信息如下(单个日志中可以有多个传感器数据,我必须使用一组特定的传感器数据)。如果我不知道如何安装 pcregrep(这似乎非常适合这项工作),我会用数据询问基本问题。

0 投票
0 回答
116 浏览

bash - 如果我的输入命令参数是多行,我应该在 BASH for 循环中使用什么 IFS?

我想将 pcregrep 的每个单个完整的多行结果存储到 for 循环的每次迭代的变量中。

前任:

但是,我不确定我应该使用什么 IFS 来正确识别每个单独的 pcregrep 结果,以便我可以将其存储到变量中(每次迭代一个结果)。

我也愿意听到其他实现目标的迂回方法(即使它不涉及 IFS)

以下是我将使用的一些示例结果:

结果1:

结果 2:

提前致谢