当前位置: 首页 > 知识库问答 >
问题:

grep语句中的RegEx

乐正瑞
2023-03-14

我已经使用这个正则表达式测试器来检查我的正则表达式是否有效:http://regex101.com/

The RegEx I'm using is: \s?(?<='username' => ').*[^']
The string I'm looking at is: 'username' => 'test12345'
The substring I want to get is: test12345

当我在RegEx-tester中输入RegEx时,它显示子字符串被捕获。

现在我想使用正则表达式从文件中 grep 子字符串。到目前为止,我对这个说法没有运气:

grep "\s?(?<='username' => ').*[^']" ./file_to_search

grep 不会抛出任何错误。它根本不会像找不到匹配项时那样给出结果。

我尝试过用反斜杠来转义grep语句中的撇号,但是没有用。

非常感谢任何帮助。

共有1个答案

沈弘盛
2023-03-14

要使查找工作,您需要启用-Pperl regexp参数,还需要在grep上启用-oonly matching参数,以便只打印匹配项,而不是打印整行。

grep -oP "\s?(?<='username' => ')[^']*" file

grep -oP "'username' => '\K[^']*" file
 类似资料:
  • 我不太明白java中语句的定义。我在网上读了很多页,还有其他问题,但没有一个能给我一个准确的答案。 我们这里有多少陈述? 我想说,这是一个声明。然而,我们也可以这样写: 这是两个声明,对吗?

  • 问题内容: 我正在学习Swift的语法,想知道为什么下面的代码无法按我期望的那样工作: 我想每次将数字除以3(3、6、9、12等)时都打印Fizz,并且每次将其除以5时都打印Buzz,那么缺少哪一块拼图? 注意:我确实使用以下方法解决了问题: 我想知道如何使用Switch解决此问题。谢谢。 问题答案: FizzBu​​zz游戏的通常规则 是用“ Fizz”替换每个3的倍数,用“ Buzz”替换每个

  • 本文向大家介绍Java中的Switch语句,包括了Java中的Switch语句的使用技巧和注意事项,需要的朋友参考一下 switch语句允许针对值列表对变量进行相等性测试。每个值称为一个案例,并针对每种情况检查要打开的变量。首先让我们看一下语法- 以下是适用于Java中switch语句的规则- switch语句中使用的变量只能是整数,可转换整数(字节,短整数,字符),字符串和枚举。 开关内可以有任

  • 我有这样的想法: 并想做添加到像这样的地方: 简而言之:如果secondValue的值不同于“0”,我不想设置生成器。相等(第二列)。如果可能的话,我想在构建器内部使用它,因为这个构建器非常长,所以我想避免代码重复。 问题是,如果条件不能在分号后为空,从另一方面来说,我不能在这个生成器表达式中使用正常的如果(秒值!=0)。 你能帮我吗?

  • 问题内容: 我总是发现很难编写MySQLi预备语句,因为许多函数的工作方式与旧方法不同。现在我面临一个问题。 问题答案: 您正在尝试通过以下方式获取结果 事实并非如此。因为execute将仅返回布尔值。 做喜欢的。

  • 多个action组装成块,可以根据不同条件执行一段语句 : tasks: - block: - yum: name={{ item }} state=installed with_items: - httpd - memcached - template: src=templa