使用或避免正则表达式?

时间:2012-01-26 14:29:35

标签: php regex

作为程序员,我需要每天过滤,搜索和验证数据。对于所有这些问题,我需要决定是使用正则表达式还是纯PHP。

即使是像这里这样的简单示例,我认为还不清楚使用什么: How to write a regex expression that replace anchors and links value

使用正则表达式的主要优点是它很短但因此会失去很多可读性。

是否有最佳做法?

4 个答案:

答案 0 :(得分:2)

输入可以用regular grammar表示吗?如果是这样,使用正则表达式,否则你需要构建一个解析器来处理它。

答案 1 :(得分:1)

正则表达式是用于匹配文本中的模式的工具。如果要匹配文本中的模式,请使用它们。

答案 2 :(得分:0)

这实际上取决于用例。

例如,如果您需要验证某个数字的格式为ddd.dddd--d,则最好使用正则表达式:

preg_match('/^\d{3}\.\d{4}--\d$/', $num);

但是如果你需要在另一个字符串中搜索字符串,请使用字符串函数而不是正则表达式:

if (strpos("findme in here", "findme") !== FALSE) {

}

如果需要根据其位置而不是变量上下文检索子字符串,请使用字符串函数:

$string = "This is the original";
$get = "is";
echo substr($string, strpos($string, $get) + strlen($get), strlen($string));
// the original

答案 3 :(得分:0)

首先尝试使用普通的php(通常以str为前缀的函数)。如果您无法轻松获得解决方案,请使用正则表达式。