Php 正则表达式

Php 正则表达式,php,regex,Php,Regex,我有一份增值税编号清单。问题是,其中一些在开始时包含两个字符的国家ISO代码,而另一些则不包含。如果这两个字母存在,我需要去掉它们,例如,es7782173x变为7782773x,969652255801保持不变。 请帮助我使用正则表达式。替换所有开头字母的PHP正则表达式: $vat = 'es7782173x'; $vat = preg_replace('/^\D+/', '', $vat); \D匹配任何非数字的内容,并用空字符串替换它,有效地将其从^anchor+开始剥离匹配一个或多个

我有一份增值税编号清单。问题是,其中一些在开始时包含两个字符的国家ISO代码,而另一些则不包含。如果这两个字母存在,我需要去掉它们,例如,es7782173x变为7782773x,969652255801保持不变。
请帮助我使用正则表达式。

替换所有开头字母的PHP正则表达式:

$vat = 'es7782173x';
$vat = preg_replace('/^\D+/', '', $vat);

\D匹配任何非数字的内容,并用空字符串替换它,有效地将其从^anchor+开始剥离匹配一个或多个匹配项。

用PHP正则表达式替换开头的所有字母:

$vat = 'es7782173x';
$vat = preg_replace('/^\D+/', '', $vat);

\D匹配任何非数字的内容,并用空字符串替换它,有效地将其从^anchor+开始剥离匹配一个或多个匹配项。

这不一定需要正则表达式。执行简单的字符串检查以查看第一个字符是否为数字,然后提取子字符串(如果为数字)可能会更快。正则表达式的代码行会更少,但通常的限制条件是:任何解决方案需要正则表达式的问题现在都有两个问题。马克,我认为这个短语的实际意义是避免使用太多的正则表达式,而不是完全避免使用它们。在这个项目中,这是一个巨大的项目,几乎找不到任何正则表达式。因此,一个小而简单的字符不会有任何区别。这不一定需要正则表达式。执行简单的字符串检查以查看第一个字符是否为数字,然后提取一个子字符串(如果为数字)可能会更快。正则表达式的代码行会更少,但通常的限制条件是:任何解决方案需要正则表达式的问题现在都有两个问题。马克,我认为这个短语的实际意义是避免使用太多的正则表达式,而不是完全避免使用它们。在这个项目中,这是一个巨大的项目,几乎找不到任何正则表达式。因此,一个小而简单的答案不会有任何区别。删除我的答案,因为它与您的答案基本相同,可能值得一提的是,这也适用于作为输入的数组,在这种情况下,它将返回作为输出的数组。因此,无需循环和preg_替换列表中的每个条目。删除了我的答案,因为它与您的答案基本相同,可能值得一提的是,这也适用于作为输入的数组,在这种情况下,它将返回作为输出的数组。因此,无需循环和preg_替换列表中的每个条目。