【问题标题】:regex to find lines starting with `*` and ending with `)` in eclipse using regex search正则表达式使用正则表达式搜索在 Eclipse 中查找以 `*` 开头并以 `)` 结尾的行
【发布时间】:2015-06-04 13:56:55
【问题描述】:

我正在尝试在 Eclipse 中使用这个正则表达式来查找下面提到的行。

我有一个文本文件text.txt

teeet()
*test()
*test
* ()
test 
asdgaer ()
* test()

我想找到正则表达式来查找所有以* 开头并以) 结尾的行

样本输出:

*test()
* ()
* test()

这是我目前所拥有的:

grep "^\* . )$" Test.txt

输出为空白。

我试过了:

grep "^\*" Test.txt

输出是:

*test()
*test
* ()
* test()

也试过了:

grep ")$" Test.txt 

输出是:

teeet()
*test()
* ()
asdgaer ()
* test()

结合它们,它们并没有像我预期的那样工作。

【问题讨论】:

  • 在 grep 的正则表达式周围使用单引号,而不是双引号

标签: regex eclipse shell grep


【解决方案1】:

你可以使用:

grep '^\*.*)$' file
*test()
* ()
* test()

否则:

grep -E '^\*.*\)$' file

你必须保持.*在开始*和结束)之间匹配任意数据。

【讨论】:

  • 我尝试在 Eclipse 正则表达式中使用 ^\*.*)$,但它表示在索引 4 附近的 ) 附近无法匹配。
  • 在 Eclipse 中,您必须使用 ^\*.*\)$' 和转义的 (
  • 我确实尝试过。它仍然没有工作。我确定文本在那里。
  • 您在 Eclipse 中尝试过grep 命令或正则表达式?两个grep 命令都经过了很好的测试。
  • 我想说不要将grepEclipse 混用。问题是关于grepshell 和Eclipse 是完全不同的正则表达式风格。 不过,^\*.*\)$ 在 Eclipse 上也非常适合我。
【解决方案2】:

我认为awk 也适用于这种检查:

$ awk '/^*/ && /)$/' file
*test()
* ()
* test()
  • /^*/ 检查行是否以 * 开头。
  • /)$/ 检查行是否以 ) 结尾。

&& 之间,我们确保这两种情况都会发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多