Regex 正则表达式将前导零添加到EAN-13

Regex 正则表达式将前导零添加到EAN-13,regex,Regex,关于如何最好地使用正则表达式将前导零添加到12位EAN代码的任何建议 EAN代码默认为13位(12+1控制),但一些制造商使用12位EAN,这意味着您需要添加前导零,以便在某些系统中工作。我如何使用正则表达式来最好地实现这一点 如果代码已经有13位,则不应进行更改。 (顺便说一句,这不是由于缺少控制数字-使用计算器将控制添加到12位数字会导致错误的条形码仅供参考) 谢谢 Java: String EAN13 = (EAN.length()==12?"0":"") + EAN; PHP: 这不是

关于如何最好地使用正则表达式将前导零添加到12位EAN代码的任何建议

EAN代码默认为13位(12+1控制),但一些制造商使用12位EAN,这意味着您需要添加前导零,以便在某些系统中工作。我如何使用正则表达式来最好地实现这一点

如果代码已经有13位,则不应进行更改。 (顺便说一句,这不是由于缺少控制数字-使用计算器将控制添加到12位数字会导致错误的条形码仅供参考)

谢谢

Java:

String EAN13 = (EAN.length()==12?"0":"") + EAN;
PHP:


这不是使用正则表达式,如果ean的长度为12位,只需在ean前加一个0即可。

如果要使用正则表达式,只需在每12位(不超过)ean前加一个前导0即可

PHP示例:

$ean = '978294019961'; 
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961

$ean = '0978294019961';
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961

为什么正则表达式是解决这个问题的必要部分?在大多数语言中,(检查字符串的长度。如果长度为12,则前置一个0)似乎是几行简单的代码。我需要使用正则表达式,因为我正在处理的系统,数据导入用于InDesign。感谢帮助人员,今天在这里添加了正则表达式世界中的另一个凹痕。这似乎在我删除“/”时起到了作用。用计算机测试它。我目前不在ID机上,将很快在那里进行测试。。非常感谢,这很简单
/
是分隔符,
myregextester.com
会自动添加它们。您可以在操作下拉列表附近看到一个DELIM下拉列表,允许您选择要使用的分隔符(默认值:
/
)。啊,好的,现在我明白这意味着什么了。我觉得这和这个有关我不太熟悉这本书的写作方式。。InDesign插件使用简单的正则表达式字符串进行搜索和替换。对不起,我假设这是Java,但查看标记,您实际上没有指定语言。。。
$ean = '978294019961'; 
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961

$ean = '0978294019961';
echo preg_replace('/^\d{12}$/', '0$0', $ean); // 0978294019961