我想清理一个自由文本字段列以进行文本分析,并尝试删除所有数字,除非后面紧跟一个特定字母。在下面的示例中,我想删除第一个数字,但同时保留120f和119 f,因为它们是有意义的值。
使用以下正则表达式:
Phrase =
"14.300.114 .temperature is not 120f but 119 f...";
Show( Phrase );
Regex( Phrase, "\d+([^\d+(f|\sf)])", "", GLOBALREPLACE );
给我这个结果:
“ 114温度不是120f,而是119 f ...”。成功保留了转义符,但并非删除第一个数字字符串中的所有数字。
我的第一次迭代看起来像这样:
Regex( Phrase, "\d+([^\d+f])", "", GLOBALREPLACE );
结果是:
“。温度不是120f,而是...
因此,此操作成功删除了所有数字,但没有保留“ 119 f”大小写(数字与“ f”之间留有空格)。
有人可以帮助我理解如何构建可正确删除所有数字的表达式,除非后面跟有“ f”或“ f”?
尝试使用负前瞻:
Phrase = "14.300.114 .temperature is not 120f but 119 f...";
Show( Phrase );
result = Regex( Phrase, "(?!\d+\s*f)\d+", "", GLOBALREPLACE );
Show( result);
输出:
短语=“ 14.300.114。温度不是120f,而是119f ...”;
结果=“ .. 温度不是120f,而是119f ...”;