아래 코드에서 (. *) 내용을 가져 와서 grep로 캡처하는 정규 표현식을 사용하여 부분 문자열을 캡처하려고합니다.어떻게하면 perl grep 정규 표현식 캡처를 수행합니까
@substring = grep /^test-results(.*)/,@$(array_reference);
이 작동하지 않습니다 ....
아래 코드에서 (. *) 내용을 가져 와서 grep로 캡처하는 정규 표현식을 사용하여 부분 문자열을 캡처하려고합니다.어떻게하면 perl grep 정규 표현식 캡처를 수행합니까
@substring = grep /^test-results(.*)/,@$(array_reference);
이 작동하지 않습니다 ....
은 아마 map
기능은 더 잘 맞는 당신이 원하는 무엇을위한 것입니다. 다음과 같은 (테스트되지 않은) 코드와 유사 뭔가를 찾고 :리스트 문맥에서
@substrings = map { /^test-results(.*)/ ? $1 :() } @{ $arrayref };
, 정규식 일치 그래서 당신이 필요로하는 모든이, 그 캡처가 일치하는 것의 목록을 반환
@substrings = map /^test-results(.*)/, @$array;
+1'map' FTW! 나 무슨 일이야? – Jess
도움이되는지도 도구를 이용해 주셔서 감사합니다 .... –
'$ 1'과 친구를 조건부 바깥에서 사용하지 마십시오. 캡처는 마지막으로 성공한 일치에서 가져옵니다. '@substrings = map {/^test-results(.*)/? $ 1 :()} @ {$ arrayref};'. –
@ 그렉 : 고마워요! 나는 물론 모든 것이 일치 할 가능성이 매우 높다는 가정을했다. 대체 됨. :) – sarnold