查找并删除与句子中的子字符串匹配的单词
find and remove words matching a substring in a sentence
是否可以使用正则表达式查找包含子字符串的句子中的所有单词?
示例:
var sentence = "hello my number is 344undefined848 undefinedundefined undefinedcalling whistleundefined";
我需要找到这个句子中包含 'undefined' 的所有单词并删除这些单词。
Output should be "hello my number is ";
仅供参考 - 目前我标记化 (javascript) 并遍历所有标记以查找和删除,然后合并最终字符串。我需要使用正则表达式。请帮忙
谢谢!
您可以使用:
str = str.replace(/ *\b\S*?undefined\S*\b/g, '');
RegEx Demo
当然可以。
像单词开头,零个或多个字母,"undefined",零个或多个字母,单词结尾应该这样。
单词边界 \b
在字符 class 之外,因此:
\b\w*?undefined\w*?\b
使用非贪婪重复来避免字母匹配 tryig 来匹配 "undefined" 并导致大量回溯。
编辑 将 [a-zA-Z]
切换为 \w
因为该示例包含 "words" 中的数字.
\S*undefined\S*
尝试 empty string
的这个简单的 regex.Replace。查看演示。
由于有足够的正则表达式解决方案,这里是另一个 - 使用数组和简单的函数来查找字符串中字符串的出现:)
尽管代码看起来更 "dirty",但它实际上比正则表达式运行得更快,因此在处理 LARGE 字符串时考虑它可能是有意义的
var sentence = "hello my number is 344undefined848 undefinedundefined undefinedcalling whistleundefined";
var array = sentence.split(' ');
var sanitizedArray = [];
for (var i = 0; i <= array.length; i++) {
if (undefined !== array[i] && array[i].indexOf('undefined') == -1) {
sanitizedArray.push(array[i]);
}
}
var sanitizedSentence = sanitizedArray.join(' ');
alert(sanitizedSentence);
Fiddle: http://jsfiddle.net/448bbumh/
你可以像这样使用str.replace函数
str = str.replace(/undefined/g, '');
是否可以使用正则表达式查找包含子字符串的句子中的所有单词?
示例:
var sentence = "hello my number is 344undefined848 undefinedundefined undefinedcalling whistleundefined";
我需要找到这个句子中包含 'undefined' 的所有单词并删除这些单词。
Output should be "hello my number is ";
仅供参考 - 目前我标记化 (javascript) 并遍历所有标记以查找和删除,然后合并最终字符串。我需要使用正则表达式。请帮忙
谢谢!
您可以使用:
str = str.replace(/ *\b\S*?undefined\S*\b/g, '');
RegEx Demo
当然可以。
像单词开头,零个或多个字母,"undefined",零个或多个字母,单词结尾应该这样。
单词边界 \b
在字符 class 之外,因此:
\b\w*?undefined\w*?\b
使用非贪婪重复来避免字母匹配 tryig 来匹配 "undefined" 并导致大量回溯。
编辑 将 [a-zA-Z]
切换为 \w
因为该示例包含 "words" 中的数字.
\S*undefined\S*
尝试 empty string
的这个简单的 regex.Replace。查看演示。
由于有足够的正则表达式解决方案,这里是另一个 - 使用数组和简单的函数来查找字符串中字符串的出现:)
尽管代码看起来更 "dirty",但它实际上比正则表达式运行得更快,因此在处理 LARGE 字符串时考虑它可能是有意义的
var sentence = "hello my number is 344undefined848 undefinedundefined undefinedcalling whistleundefined";
var array = sentence.split(' ');
var sanitizedArray = [];
for (var i = 0; i <= array.length; i++) {
if (undefined !== array[i] && array[i].indexOf('undefined') == -1) {
sanitizedArray.push(array[i]);
}
}
var sanitizedSentence = sanitizedArray.join(' ');
alert(sanitizedSentence);
Fiddle: http://jsfiddle.net/448bbumh/
你可以像这样使用str.replace函数
str = str.replace(/undefined/g, '');