问题标签 [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.
regex - PCRE 正则表达式空格
我正在尝试编写一个正则表达式来从 /etc/samba/smb.conf中提取所有非注释和非空行。注释是这样的行:
- 从...开始 #
- 从...开始 ;
- 以任意数量的空格开头,紧跟 # 或 ;
我尝试了以下方法,但它没有正确处理评论类型 3。
这个适用于所有 3 种类型的评论:
您能解释一下为什么在字符类中添加 \s 会成功过滤掉注释类型 3 吗?
regex - 从递归 pcregrep 搜索中删除多行
在我项目中每个文件的标题中,我都有一个由 VCC 生成的注释块,其中包含文件的修订历史记录。我们已从 VCC 移出,并且不再希望在文件中包含修订历史记录,因为它已过时。
我目前有一个搜索 pcregrep 搜索,它返回我正在寻找的确切结果:
我已尝试将结果通过管道传输到 xargs sed 以及许多其他尝试从文件中删除所有返回的行但我收到各种错误,包括“文件名太长”
我想删除整个区块
regex - grep 和返回行继续?
我希望 grep 通过行继续返回结果,即输入文件,如:
我似乎无法让它工作。
regex - 如何使用 ruby regexp 从 html 内容中提取 URL?
不方便解释,直接举个例子吧:
在上面我想从javascript中提取的内容中:show('f6a1ok3n4d4p','random%20strings%204',%20'site2.com')
然后将字符串“f6a1ok3n4d4p”和“site2.com”设为
和相同的 javascript:show('zsgn82c4b96d','random%20strings%204',%20'site1.com') 成为
我需要用 ruby 正则表达式来完成
regex - 将包含通配符的字符串转换为正则表达式
我需要使用正则表达式转换包含通配符的字符串。
例如,如果我有如下输入字符串:
ab*dd*c
这表示
ab(任意数量的任意字符)d(任意数量的任意字符)c
any character
任何字母数字字符或“_”在哪里。
我尝试过如下方法:
'ab([[:alnum]] | '_')*dd([[:alnum]] | '_')*c'
但是,正如您所看到的,例如,也([[:alnum]] | '\_')*
匹配d
,因此,我无法获得所需的匹配。
想到的是使用以下内容:
'ab[^d]*dd[^c]*c'
还有其他更好的解决方案吗?
提前致谢!
linux - 如何检查一个文件是否是另一个文件的一部分?
我需要通过 bash 脚本检查一个文件是否在另一个文件中。对于给定的多行模式和输入文件。
返回值:
我想接收状态(如何在 grep 命令中)如果找到任何匹配项,则为 0,如果未找到匹配项,则为 1。
图案:
- 多线,
- 行的顺序很重要(被视为单个行块),
- 包括数字、字母、?、&、*、# 等字符,
解释
只有以下示例应该找到匹配项:
以下不应该:
这是我的脚本:
我可以对所有模式行使用 grep 命令,但在此示例中失败:
或者即使你换行:2 和 3
不应该返回 0。
我该如何解决?请注意,我更喜欢使用本机安装程序(如果可以不使用 pcregrep)。也许 sed 或 awk 可以解决这个问题?
c++ - 为什么这个正则表达式在 pcregrep 中匹配,但在我的 c++ 代码中不匹配?
我有一个与以下完美配合的正则表达式pcregrep
:
现在我试图在我的 C++ 代码中包含这个正则表达式,但它不匹配(包括转义):
我正在尝试找到这样的函数体(该段落为0a
十六进制):
为什么它可以在 C++ 代码中使用pcregrep
而不是在 C++ 代码中使用?
sed - 查找并替换跨行的通配符?
我想输入一些这样的文本:
并摆脱这个:
到目前为止,我已经阅读并搞砸了使用 sed、grep 和 pcregrep 并且无法使其工作。看起来我可以用 Vim 做这样的事情,但我以前从未使用过 Vim,这看起来像是一种皇家痛苦。
我尝试过的东西包括:
和
我不确定是我没有正确使用这些命令,还是我使用了错误的工具。我很难相信没有办法使用终端来查找和替换跨行的通配符。
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 1和SO Question 2,引用它们,以便它们出现在相关问题部分。 此手册页显示它可以存在于 cygwin 中,但尝试为其运行手册页会导致:
pcregrep 的库似乎存在于我的 cygwin 安装中,但我不知道如何编译/提取/使它们能够访问该实用程序。当我尝试运行它时,我得到了来自 bash 的未找到标准命令的响应:
所以我的问题是: 我在 cygwin 中做什么才能让我使用 pcregrep?
我不知道如何继续,我有数以万计的日志文件要处理,我需要能够通过其中两个之间的行数找到与每个相关的三行,构成这些行中的字符串和它们上方的“标题”行告诉我正确的传感器类型信息如下(单个日志中可以有多个传感器数据,我必须使用一组特定的传感器数据)。如果我不知道如何安装 pcregrep(这似乎非常适合这项工作),我会用数据询问基本问题。
bash - 如果我的输入命令参数是多行,我应该在 BASH for 循环中使用什么 IFS?
我想将 pcregrep 的每个单个完整的多行结果存储到 for 循环的每次迭代的变量中。
前任:
但是,我不确定我应该使用什么 IFS 来正确识别每个单独的 pcregrep 结果,以便我可以将其存储到变量中(每次迭代一个结果)。
我也愿意听到其他实现目标的迂回方法(即使它不涉及 IFS)
以下是我将使用的一些示例结果:
结果1:
结果 2:
提前致谢