preg_replace允许特定的字符串

时间:2016-08-10 08:33:47

标签: php regex string preg-match

我有这个功能:

$anyNumberClean = preg_replace('/[^0-9.,-E]/', '', $anyNumberDirty);

如果后跟E,我想将其修改为仅保留-0

换句话说:如果E-0后面没有E-1,则只允许EA而非EE或包含-0的任何其他字符串}}

如何正确更改功能?

1 个答案:

答案 0 :(得分:0)

您需要使用正向前瞻,这是与E匹配的正则表达式,只有后跟-0

/E(?=\-0)/

另请尝试:https://regex101.com/r/wC7pI4/1

更新1

试试这个正则表达式:/([\-0-9\.\,]*)(E-0)?([0-9]*)/ug

使用php函数preg_match捕获数组中的匹配结果。

此正则表达式会将您的输入分组。您需要通过检查匹配结果来进一步验证输入是否有效,并保留所需的部分。