SAS에서 일하고 있는데이 문자열로 올바르게 작동하는 perl reg ex를 찾으려고 노력했습니다. (여기서 src는 문자열이고 txt는 I 행입니다. 싶습니다 ... 출력 라인의 수) 아래Perl Reg Ex Expression - 패턴과 텍스트를 추출한 후
src='01/04/2017 03:45:32 Some Comment - abc 05/04/2017 16:32:41 Some other Comment 06/07 at something'
txt='01/04/2017 03:45:32 Some Comment - abc'
txt='05/04/2017 16:32:41 Some other Comment 06/07 at something'
나는 시도하고이 시도 사용 된 SAS 코드가 ... 여기
data _null_;
ExpressionID = PRXPARSE('/(\d{2}\/\d{2}\/\d{4}) (\s) (\d{2}\:\d{2}\:\d{2}) /xio');
text = '01/04/2017 03:45:32 Some Comment - abc 05/04/2017 16:32:41 Some other Comment 06/07 at something';
start = 1;
stop = length(text);
/* Use PRXNEXT to find the first instance of the pattern, */
/* then use DO WHILE to find all further instances. */
/* PRXNEXT changes the start parameter so that searching */
/* begins again after the last match. */
call prxnext(ExpressionID, start, stop, text, position, length);
do while (position > 0);
found = substr(text, position, length);
put found= position= length=;
call prxnext(ExpressionID, start, stop, text, position, length);
end;
run;
이것은 'perl' 질문입니다. 나는 이것이 '마술 정규식'에 대한 직업이 아니라 오히려 당신이'분할 '과 동등한 것을보고 있다고 제안 할 것이다. – Sobrique
[?. +? (? = d | 2} \ /) {2} \ d {4} \ s * \ d {2} (? :: \ d {2}) {2 })'] (https://regex101.com/r/Ts05tl/1)? – Gurman
그것은 정규식입니다, 기본적으로 문자열의 시작/끝을 식별하는 정규식이 필요합니다. – TechGuy