REGEX - 删除指定的字符串

时间:2013-01-08 13:15:27

标签: regex remove-if

我需要Regex的帮助。我有"testBla""Bla"test"等字词 我想从"test"剪切"testBla"。因此,如果给定的字符串大于4个字符,它应该只删除"test"。 这就是我所拥有的:

^test\w{4,}

但它不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果你想删除test,如果它出现在行的开头,后跟一个单词字符,那么你可以使用非单词边界:

^test\B

查看在线工作:rubular

如果你想删除test,如果它出现在行的开头,后跟任何字符(新行除外),那么你可以使用前瞻:

^test(?=.)

查看在线工作:rubular

答案 1 :(得分:1)

这个只能捕获单词中的'test'部分:\btest(?=\w{4,})。我假设你正在使用一个前瞻性为零的正则表达式引擎。

答案 2 :(得分:0)

假设您使用的是JavaScript,请尝试以下操作:

string.replace(/test([^]+)/i, "$1");

       'Bla'.replace(/test([^]+)/i, "$1"); // 'Bla'
      'test'.replace(/test([^]+)/i, "$1"); // 'test'
   'testBla'.replace(/test([^]+)/i, "$1"); // 'Bla'
   'blaTest'.replace(/test([^]+)/i, "$1"); // 'blaTest'
'blaTestbla'.replace(/test([^]+)/i, "$1"); // 'blaTestbla'

这将从字符串中删除test,仅当字符串以test开头时,并且仅当字符串中的字符串多于test时才会删除。我添加i以使正则表达式不区分大小写。