作为程序员,我需要每天过滤,搜索和验证数据。对于所有这些问题,我需要决定是使用正则表达式还是纯PHP。
即使是像这里这样的简单示例,我认为还不清楚使用什么: How to write a regex expression that replace anchors and links value
使用正则表达式的主要优点是它很短但因此会失去很多可读性。
是否有最佳做法?
答案 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为前缀的函数)。如果您无法轻松获得解决方案,请使用正则表达式。