누구나이 정규식을 설명 할 수 있습니까? 이 $ %는 무엇을합니까? 나는 아무 생각이 없다.펄 정규 표현식은 무엇을합니까?
$self = "/usr/bin/XYZ";
$self =~s%/+[^/]*$%%;
print ("$self\n");
감사합니다.
누구나이 정규식을 설명 할 수 있습니까? 이 $ %는 무엇을합니까? 나는 아무 생각이 없다.펄 정규 표현식은 무엇을합니까?
$self = "/usr/bin/XYZ";
$self =~s%/+[^/]*$%%;
print ("$self\n");
감사합니다.
퍼센트 그것은
$self=~s/\/+[^\/]*$//;
그래서 $ 문자열 앵커의 끝은
를 다시 작성할 수 있습니다\/+ - one or more forward slashes
[^\/]* - any number of anything that is not a forward slash
$ - at the end of the string
이렇게 벗기기 /end of string
끄기
일반적으로 경로 이름에 /가 많이 포함되어 있기 때문에 %는 더 일반적인 // 구분자 대신 사용됩니다. 그렇지 않으면 경로를 다르게 사용해야합니다. $는 단순히 줄의 끝과 일치합니다. 두 번째 %는이 경우 비어있는 대체 패턴의 끝입니다.
regexp의 의미는 - /로 끝나고 그 사이에 /가없는 줄 끝으로 끝나는 것을 찾으라는 의미입니다. 기본적으로 XYZ를 이런 방법으로 가져와/usr/bin을 제외하는 것으로 대체 할 것입니다.
+1 날 2 초. 두 %%는 대체 문자열이 비어 있음을 나타냅니다. –
어리석은 나는 그것을 대체하지 못했다. :-) –
백분율 기호가보다 일반적인 s/pattern/replacement/대신 s에 대한 구분 기호로 사용됩니다. 그래서 그 바로 앞에있는 달러 기호는 줄 끝 앵커입니다.
왜 작은 파일에 넣고 실행하지 않습니까? 너 자신을 시험해 보는 것 같이 아무것도 없다. 뿐만 아니라 당신은 더 많은 것을 배울 수 있습니다, 당신은 그것에 대해 더 흥미로운 것들을 찾기 위해 함께 놀 수 있습니다. – shawnhcorey