【问题标题】:Awk - regular expressionawk - 正则表达式
【发布时间】:2012-12-12 13:10:02
【问题描述】:

我有两个例子:

1.

$ echo "Lorem ipsum dolor sit amet" | awk '{gsub(/L[^r]r/,"");打印}'

em ipsum dolor sit amet

2.

$ echo "Loorem ipsum dolor sit amet" | awk '{gsub(/L[^r]r/,""); 打印}'

Loorem ipsum dolor sit amet

为什么第二个例子和第一个不一样?

在第一个例子中,[^r] 的记录被视为单个字符?是不是因为删除了一个"o"

【问题讨论】:

标签: awk


【解决方案1】:

L[^r]r 匹配L 后跟任何不是r单个 字符,后跟r,例如Lor。要匹配Loor,您需要L[^r]+r+ 量词表示一个或多个不是r 的字符。

$ echo "Loorem ipsum dolor sit amet" | awk '{gsub(/L[^r]+r/,""); print}'
em ipsum dolor sit amet

【讨论】:

  • @GrijeshChauhan 你在说什么?
  • 我有一个疑问,但现在清楚了。你已经在你的回答中描述了。谢谢!
  • @sudo_O 但他确实提出了一个问题并声称他现在有了答案。
  • @GrijeshChauhan 这是真的,但它似乎与您的问题无关。据我了解,您的问题的答案是L.r
  • @sudo_O,谢谢你的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 2021-05-18
相关资源
最近更新 更多