我想清理一個自由文本字段列以進行文本分析,並嘗試刪除所有數字,除非後面緊跟一個特定字母。在下面的示例中,我想刪除第一個數字,但同時保留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 ...”;