正则表达式在行中第一个空格出现之前删除所有内容?

时间:2018-04-13 11:12:50

标签: regex notepad++ openoffice-calc

我想在每行第一次出现空格之前删除所有字符。

初始文字样本:

  • 2:2我的狗很好。
  • 1:234我的猫不好
  • 14:2我的青蛙很糟糕,但它爱我的花园。

结果必须是:

  • 我的狗很好。
  • 我的猫不好
  • 我的青蛙很糟糕,但它爱我的花园

使用OpenOffice Calc或Notepad ++,您将使用什么正则表达式来实现此结果?

2 个答案:

答案 0 :(得分:4)

  • 控制 + ħ
  • 找到:^\S+\s+(.+)$
  • 替换为:$1
  • 检查环绕
  • 检查正则表达式
  • 请勿检查. matches newline
  • 全部替换

<强>解释

^           : beginning of line
  \S+       : 1 or more non space character
  \s+       : 1 or more space character
  (.+)      : group 1, 1 or more any character (ie. rest of the line)
$           : end of line

<强>替换

$1      : content of group 1

给定示例的结果:

My dog is good.
My cat is bad
My frog is bad but it loves my garden.

答案 1 :(得分:2)

  • Ctrl + h 打开查找和替换对话框
  • 在“找到什么”文本框
  • 中写下^.*?\s+(.*)$
  • 在“替换为”文本框
  • 中写下$1
  • 检查Regular Expression单选按钮或按 ALT + g
  • 您可以点击查找下一个按钮来验证其是否正常工作(以查找匹配项)
  • 如果看起来不错,请点击全部替换按钮或按 ALT + a

说明:

  • ^:从行首开始
  • .*?\s+:匹配任何内容,任何次数,直到遇到空格(或更多空格)
  • (.*):捕捉这些空格后的所有内容
  • $:匹配到行尾
  • $1:从行
  • 访问上述捕获的字符串