Php 在smarty中将数字与字符串分开
我有一根像Php 在smarty中将数字与字符串分开,php,smarty,prestashop,Php,Smarty,Prestashop,我有一根像 $str ='my age is 100'; 现在我想从上面的字符串中分离出100,如何使用smarty来分离呢 我在普雷斯塔肖普工作。 谢谢假设字符串中的数字后面或前面没有逗号、括号,只有空格,您可以使用: {assign var="str" value="my age is 100 Include Couple Name (max 21 letters)"} {assign var="ar" value= " "|explode:$str} {foreach $ar as
$str ='my age is 100';
现在我想从上面的字符串中分离出100,如何使用smarty来分离呢
我在普雷斯塔肖普工作。
谢谢假设字符串中的数字后面或前面没有逗号、括号,只有空格,您可以使用:
{assign var="str" value="my age is 100 Include Couple Name (max 21 letters)"}
{assign var="ar" value= " "|explode:$str}
{foreach $ar as $a}
{if $a|is_numeric}
{append var="numbers" value=$a}
{/if}
{/foreach}
NUMBERS:<br />
{foreach $numbers as $n}
{$n}<br />
{/foreach}
正如预期的那样。如果只有一个数字,您可以使用以下正则表达式从字符串中删除所有非数字字符: 第一个示例打印100,第二个示例打印21。但是,对于具有不同数字的字符串,它将无法正常工作(例如,“我有2头牛和1只兔子”将返回21)
综上所述,如果需要在代码中使用数字,我建议您不要从文本字符串中提取数字,因为它容易出错。最好声明一个单独的变量,而不是这背后有什么逻辑吗?否则我只建议您使用$var='100';是的,我从管理员那里得到这个值,我想把这个数字分开,因为我想在其他地方使用这个数字。我的意思是,它总是那个句子,它总是字符串中的最后一个,这个数字在你的字符串中有什么逻辑吗。。看@Naruto我的字符串像是包含两个名字(最多21个字母)。现在我想从字符串中分离出21个。这次你明白了吗?@user3910051我的解决方案对你有用吗?我看到你接受了它,后来又不接受了
NUMBERS:
100
21
{$str|regex_replace:"/[^0-9]/":""}