텍스트 분석을 위해 자유 텍스트 필드 열을 정리하고 특정 문자가 뒤에 오는 경우를 제외하고 모든 숫자를 삭제하려고합니다. 아래 예에서는 의미있는 값이므로 첫 번째 숫자를 삭제하고 120f와 119f를 모두 유지하고 싶습니다.
다음 정규식 사용 :
Phrase =
"14.300.114 .temperature is not 120f but 119 f...";
Show( Phrase );
Regex( Phrase, "\d+([^\d+(f|\sf)])", "", GLOBALREPLACE );
이 결과를 제공합니다.
"114. 온도는 120f가 아니라 119f ...". remperatures는 성공적으로 유지되지만 첫 번째 숫자 문자열의 모든 숫자가 삭제되는 것은 아닙니다.
내 첫 번째 반복은 다음과 같습니다.
Regex( Phrase, "\d+([^\d+f])", "", GLOBALREPLACE );
결과 :
". 온도는 120f가 아니라 f ..."
따라서 이것은 모든 숫자를 제거하는 데 성공했지만 "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);
산출:
Phrase = "14.300.114. 온도는 120f가 아니라 119f ...";
결과 = ".. . 온도는 120f가 아니라 119f ... ";