我需要你帮我搞定Regex。我有像"testBla","Bla"和test"这样的词。
我想从"testBla"中删除"test"。因此,只有在给定的字符串大于4个字符时,它才应该删除"test"。这就是我所拥有的:
^test\w{4,}但它不起作用。
有什么想法吗?
发布于 2013-01-08 21:17:46
如果你想删除test,如果它出现在行首,后面跟着一个单词字符,那么你可以使用非单词边界:
^test\B在线查看它的工作方式:rubular
如果你想删除test,如果它出现在行的开头,后面跟着任何字符(换行符除外),那么你可以使用一个先行:
^test(?=.)在线查看它的工作方式:rubular
发布于 2013-01-08 21:21:19
这将只捕获一个单词中的“测试”部分:\btest(?=\w{4,})。我假设您使用的是具有零长度先行的正则表达式引擎。
发布于 2013-01-08 21:29:59
假设你使用的是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以使正则表达式不区分大小写。
https://stackoverflow.com/questions/14215793
复制相似问题