我需要Regex的帮助。我有"testBla"
,"Bla"
和test"
等字词
我想从"test"
剪切"testBla"
。因此,如果给定的字符串大于4个字符,它应该只删除"test"
。
这就是我所拥有的:
^test\w{4,}
但它不起作用。
有什么想法吗?
答案 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
以使正则表达式不区分大小写。