[regex] ‘마크에서 줄 끝까지 모든 것을 정규식으로 캡처 할 수있는 것은 무엇입니까?
하나의 '
.
일부 줄에는 두 개의 따옴표가 있지만 a '
와 줄 바꿈 의 첫 번째 인스턴스에서 모든 것을 가져와야합니다.
I AL01 ' A-LINE '091398 GDK 33394178
402922 0831850 ' '091398 GDK 33394179
I AL02 ' A-LINE '091398 GDK 33394180
400722 0833118 ' '091398 GDK 33394181
I A10A ' A-LINE 102 ' 53198 DJ 33394182
395335 0832203 ' ' 53198 DJ 33394183
I A10B ' A-LINE 102 ' 53198 DJ 3339418
답변
'.*
옵션이 필요하다고 생각합니다. Multiline.
답변
적절한 정규식은 ‘char 다음에 문자열 / 줄 토큰의 끝으로 끝나는 임의의 수의 문자 (0 문자 포함)가옵니다.
'.*$
‘char 뒤 의 모든 것을 캡처 하고 출력에는 포함하지 않으려면 다음을 사용합니다.
(?<=').*$
이것은 기본적으로 줄 끝까지 ‘char 다음에 오는 모든 문자를 제공합니다.
편집 :. *를 사용할 때 $는 암시 적이므로 엄격하게 요구되지 않으므로 패턴은 다음과 같습니다.
'.*
기술적으로 정확하지만 나중에 코드 유지 관리를 위해 구체적이고 혼동을 피하는 것이 더 명확하므로 $를 사용합니다. 명확성이 의심 될 수있는 상황에서 암시 적 행동에 의존하는 것보다 명시 적 행동을 선언하는 것이 항상 더 낫다고 생각합니다.
답변
'.*$
작은 따옴표 ( '
)로 시작 하여 줄 끝 .
( *
)까지 모든 문자 ( )를 0 번 이상 ( ) 일치 $
시킵니다.
답변
Windows (Notepad ++)에서 ‘. *를 시도하면 마지막 줄 끝까지 첫 번째’이후의 모든 항목과 일치합니다.
해당 줄 끝까지 모든 것을 캡처하려면 다음을 입력했습니다.
'.*?\n
이것은 ‘에서 해당 줄의 끝까지 모든 것을 캡처합니다.
답변
귀하의 예에서는 다음 패턴을 사용합니다.
'([^\n]+)$
여러 줄 및 전역 옵션을 사용하여 모든 항목을 일치시킵니다.
일치 항목에 줄 바꿈을 포함하려면 다음을 사용할 수 있습니다.
'[^\n]+\n
그러나 줄 바꿈이 없으면 마지막 줄을 놓칠 수 있습니다.
한 줄의 경우 줄 바꿈과 일치 할 필요가 없으면 다음을 사용하고 싶습니다.
'[^$]+$
답변
이것은 역 참조 1에서 ‘까지 모든 것을 캡처합니다. 역 참조 2에서는’뒤에있는 모든 것을 캡처합니다. 언어 (\ ‘)에 따라 어포 스트로피를 이스케이프해야 할 수도 있습니다.
/^([^']*)'?(.*)$/
빠른 수정 : 줄에 ‘가 없으면 역 참조 1은 여전히 전체 줄을 잡아야합니다.
^ - start of string
([^']*) - capture any number of not ' characters
'? - match the ' 0 or 1 time
(.*) - capture any number of characters
$ - end of string
답변
https://regex101.com/r/Jjc2xR/1
/(\w*\(Hex\): w*)(.*?)(?= |$)/gm
나는 이것이 작동한다고 확신합니다, 그것은 잘못 구조화 된 텍스트 여러 줄 벨로우에서 de hexa serial을 캡처 할 것입니다.
Space Reservation: disabled
Serial Number: wCVt1]IlvQWv
Serial Number (Hex): 77435674315d496c76515776
Comment: new comment
나는 정규식의 영원한 초보자이지만 이것을 설명하려고 노력할 것입니다.
(\ w * (Hex) : w *) : 문자열에 “Hex :”가 포함 된 줄에서 텍스트를 찾습니다.
(. *?) 이것은 두 번째 캡처 된 텍스트이며 다음의 모든 것을 의미합니다.
(? = | $) =와 | 사이의 공간 인 제한을 만듭니다.
따라서 두 번째 그룹을 사용하면