【发布时间】:2014-06-01 06:02:49
【问题描述】:
我有一长串单词。有些单词有特殊字母。
例如一个字符串“现在$ dolar inp$t 有一个真正的$l 问题” 我有一个特殊的字母“$”。
我需要以最快的方式找到并返回所有带有特殊字母的单词。
我所做的是一个函数,它通过空格解析这个字符串,然后使用“for”遍历所有单词并在每个单词中搜索特殊字符。当它找到它时,它会将它保存在一个数组中。但是有人告诉我,使用正则表达式我可以获得更好的性能,但我不知道如何使用它们来实现它。
最好的方法是什么?
我是 regex 的新手,但我知道它可以帮助我完成这项任务?
我的代码:(禁止是一个常量) 该代码目前有效,仅适用于一个禁止字符。
function findSpecialChar($x){
$special = "";
$exploded = explode(" ", $x);
foreach ($exploded as $word){
if (strpos($word,$forbidden) !== false)
$special .= $word;
}
return $special;
}
【问题讨论】:
-
我所做的是一个函数,它通过空格解析这个字符串,然后使用“for”遍历所有单词并在每个单词中搜索特殊字符。当它找到它时 - 它将它保存在一个数组中。但有人告诉我,使用正则表达式我可以获得更好的性能,但我不知道如何使用它们来实现它
-
您当前的解决方案需要多长时间?
-
把你拥有的所有信息都放在问题中。
-
您至少需要发布一些示例输入数据和您尝试过的一些代码。但如果你不这样做,它会很快被关闭。
-
Wiz - 现在不需要太多,因为我在一个小的输入上运行它。它稍后会在一些巨大的东西上运行,我被告知正则表达式的性能比使用 for 和解析要好得多。对吗?