【发布时间】:2016-03-22 11:40:10
【问题描述】:
我正在尝试编写一个函数来计算两个字符串表示同一事物的可能性。为了做到这一点,我将转换为小写并在比较字符串之前从字符串中删除特殊字符。目前我正在使用String.replace(substring, '') 删除字符串“.com”和“the”,使用String.replace(regex, '') 删除特殊字符
str = str.toLowerCase()
.replace('.com', '')
.replace('the', '')
.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');
是否有更好的正则表达式可以用来删除“.com”和“the”等常见模式以及特殊字符?或者其他一些方法可以提高效率?
随着数据集的增长,我可能会发现在尝试匹配字符串之前需要删除其他常见的无意义模式,并希望避免链接更多 replace 函数对性能造成的影响。
例子:
炸鱼薯条? => 鱼片
stackoverflow.com => 堆栈溢出
指环王 => 指环王
【问题讨论】:
-
你能分享几个例子吗?
-
为什么不将常见/无意义的模式存储在一个数组中,然后在替换之前将它们转换为字符集正则表达式模式,这样您就可以用空格替换与该模式的匹配项?
-
您可以在字符串之间使用带有 OR 的正则表达式。
-
喜欢:str.toLowerCase().replace('.com|the', '')
标签: javascript regex string-matching