首页 > 解决方案 > 使用 RegEx 选择千位分隔符

问题描述

我需要更改其中包含数字的给定字符串中的小数点分隔符。

什么正则表达式代码只能选择字符串中的千位分隔符?

它只需要选择,当它周围有数字时。例如仅当123,456我需要选择和替换时,

我正在将英文数字转换为波斯语(例如:Hello 123变成Hello ۱۲۳)。现在我也需要用波斯语版本替换小数点分隔符。但我不知道如何用正则表达式选择它。例如,Hello 121,534大多数成为Hello ۱۲۱/۵۳۴

需要替换的字符,/

标签: phpregexlocalizationnumbers

解决方案


使用带有环视的正则表达式。

$new_string = preg_replace('/(?<=\d),(?=\d)/', '/', $string);

演示

(?<=\d)表示逗号前必须有数字,(?=\d)表示逗号后必须有数字。但由于这些是环视,它们不包含在匹配中,因此它们不会被替换。


推荐阅读