我有这个功能:
$anyNumberClean = preg_replace('/[^0-9.,-E]/', '', $anyNumberDirty);
如果后跟E
,我想将其修改为仅保留-0
。
换句话说:如果E-0
后面没有E-1
,则只允许EA
而非E
或E
或包含-0
的任何其他字符串}}
如何正确更改功能?
答案 0 :(得分:0)
您需要使用正向前瞻,这是与E
匹配的正则表达式,只有后跟-0
/E(?=\-0)/
另请尝试:https://regex101.com/r/wC7pI4/1
更新1
试试这个正则表达式:/([\-0-9\.\,]*)(E-0)?([0-9]*)/ug
使用php函数preg_match
捕获数组中的匹配结果。
此正则表达式会将您的输入分组。您需要通过检查匹配结果来进一步验证输入是否有效,并保留所需的部分。