1

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

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

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

  1. 从行首开始
  2. 创建一个捕获组,它放置第一个单词(可能有前导空格)
  3. 抓住线的其余部分
  4. 仅用第一个捕获组的内部替换整行

我也尝试了另一个版本:

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

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

  1. 找到第一个非空白字符。
  2. 查看后面以确保它后面有一个空白字符(即不是该行的第一个字母)。
  3. 抓住线的其余部分。
  4. 抹去表情刚刚抓住的一切。

任何对出了什么问题的见解将不胜感激。谢谢!

4

4 回答 4

3

试试这个正则表达式

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

演示:gskinner

于 2013-05-02T04:17:41.707 回答
1

你混淆了你的+*

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

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

您可能还想使用$1而不是\1

/^([\s]*[\S]+).*$/$1/
于 2013-05-02T04:06:04.273 回答
1

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

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

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

于 2013-05-02T04:16:32.420 回答
0

删除前两个词 @"^.asterisk? .asterisk? " 这对我有用

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

如果要删除第一个单词,只需按照点号星号符号问号空格替换为“”开始正则表达式

于 2014-04-27T06:23:16.083 回答