IgnoreCase 및 Singleline 옵션이있는 테스트 정규식은 다음과 같습니다.
^\s*((?<test1>[-]?\d{0,10}.\d{3})(?<test2>\d)?(?<test3>\d)?){1,}$
및 입력 데이터 :
24426990.568 128364695.70706 -1288.460
^ (줄 시작 일치) 및 $ (줄 끝 일치 )를 생략하면
\s*((?<test1>[-]?\d{0,10}.\d{3})(?<test2>\d)?(?<test3>\d)?){1,}
그러면 모든 것이 완벽하게 작동합니다.
문자열 시작 / 종료 마커 (^ / $)와 함께 작동하지 않는 이유는 무엇입니까?
미리 감사드립니다.
시작과 끝은 문자 그대로 한 줄 모드에서 입력 문자열의 시작과 끝입니다. 여러 줄 모드에서 줄의 시작과 줄의 끝을 의미합니다.
이것은 전체 입력 문자열을 의미 합니다.
따라서 다음을 사용하는 경우 :
24426990.568 128364695.70706 -1288.460
입력 문자열로 시작하면 첫 번째 공백이되고 문자열의 끝은 0
패턴이 정확히 하나의 인스턴스와 일치하기 때문에 ^ 및 $와 함께 사용하면 정규식이 실패합니다. 이는 입력 문자열에서 해당 패턴의 한 인스턴스를 찾고 있지만 세 개가 있기 때문입니다. 두 가지 옵션이 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다