正则表达式删除每一行的第一个单词

时间:2013-05-02 04:02:44

标签: regex

我正在尝试创建一个正则表达式来抓取每一行的第一个单词(包括可能的前导空格)。这是:

/^([\s]+[\S]*).*$/\1//

此代码似乎不起作用(请参阅http://regexr.com?34o6m)。代码应该是

  1. 从行开始
  2. 开始
  3. 创建一个捕获组,放置第一个单词(可能有前导空格)
  4. 抓住剩下的部分
  5. 仅使用第一个捕获组的内部替换整行
  6. 我还尝试了另一个版本:

    /\S(?<=\s).*^//
    

    看起来这个也失败了(http://regexr.com?34o6s)。这里的目标是

    1. 找到第一个非空白字符。
    2. 查看后面以确保它背后有空白字符(即不是该行的第一个字母)。
    3. 抓住其余部分。
    4. 删除表达式抓住的所有内容。
    5. 对于出现问题的任何见解将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:3)

试试这个正则表达式

^(\s*.*?\s).*

演示:gskinner

答案 1 :(得分:1)

您混淆了+*

/^([\s]*[\S]+).*$/\1/

这意味着零个或多个空格后跟一个或多个非空格。

您可能还想使用$1代替\1

/^([\s]*[\S]+).*$/$1/

答案 2 :(得分:1)

好吧,这似乎可以在Javascript中使用replace()

/^([\s]*[\S]+).*$/

我在www.altastic.com/regexinator进行了测试,据我所知,这是准确的[我做了,所以可能不是;-)]

答案 3 :(得分:0)

删除前两个单词 @“^。星号?.asterisk?” 这对我有用

发布时,星号不显示。不知道。

如果要删除第一个单词,只需按以下步骤启动正则表达式即可 一个点标志 星号 一个问号 空间 替换为“”