需要Regex来解析String

时间:2012-03-19 12:14:08

标签: regex vim

使用正则表达式,我想解析像“DOCID = 1234567 THIS IS TEST”之类的字符串,并在数字后删除剩余的字符串。

如何使用VIM编辑器执行此操作?

4 个答案:

答案 0 :(得分:4)

Perl:

$str =~ s/(= \d+).*$/$1/;

在php中:

$str = preg_replace('/(= \d+).*$/', "$1", $str);

答案 1 :(得分:2)

那将完成这项工作:

:%s/\d\+\zs.*

说明:

  • %使用整个缓冲区,如果只想更改当前行,可以省略它
  • s替代命令
  • \d\+匹配尽可能多的数字
  • \zs设置匹配的开始
  • .*其他一切
  • 您可以省略替换字符串,因为您要删除匹配

答案 2 :(得分:1)

在VIM中,在命令模式下(按ESC),写:

:s/\([^0-9]\+[0-9]\+\).*/\1/

这将完成这项工作。 如果您想进行所有替换,那么:

:s/\([^0-9]\+[0-9]\+\).*/\1/g

答案 3 :(得分:0)

在java string.replaceFirst("(= \\d+).*$","\\1");