>

정규 표현식을 적용하여 다른 형식 (xxxxx.xx)으로 xx, xxx.xx 형식의 숫자를 추출해야합니다. 즉, 최종 캡처 그룹의 숫자에서 쉼표를 제거해야합니다.

정규 표현식으로 만 달성 할 수 있고 특정 값을 작성하지 않고도 이러한 값을 나누고 결합 할 수 있는지 확실하지 않습니다.

다음은 데모 입니다.

이것은 입력 문자열의 일부입니다 :

AMT : EGP 3,000.00

현재 정규식은 AMT\s*:\s*EGP\s*(\d*,\d*.\d*) 입니다. 기본적으로 3,000.00 를 검색합니다. .

3000.00 를 기대하고 있습니다  최종 캡처 그룹에서.

  • 답변 # 1

    수정 :

    OP가 캡처 및 교체를 원하지 않기 때문에 다음을 수행 할 수 있습니다.

    AMT\s*:\s*EGP\s*(\d*),(\d*.\d*)

    예상 데이터는 이제 두 캡처 그룹의 일부이며 \1\2 를 연결하여 액세스 할 수 있습니다. .

    데모

    <시간>

    , 이외의 모든 것을 캡처 할 수 있습니다  두 그룹으로 나누고 다음을 바꿉니다 :

    <올>

    다음으로 캡처 : 와이즈 비즈

    대체 : (AMT\s*:\s*EGP\s*\d*),(\d*.\d*)

    데모

  • 답변 # 2

    다음을 시도해보십시오 :

    \1\2
    
    

    여기 데모가 있습니다

    일치를 찾으면 다음과 같이하십시오 : AMT\s*:\s*EGP\s*\K\d+(,\d{3})*(\.\d+)?

    Mystring.Replac(",", "")

관련 자료

  • 이전 c++ - 생성자의 다른 멤버로부터 클래스 멤버 구성
  • 다음 c++ - 크기 조정시 벡터의 객체에 대한 참조가 손실됩니까?