문제

나는 이것을 ADAM2 ZSH 프롬프트에서 발견했으며 그것이 무엇을 의미하는지 전혀 모른다. 분명히 그것은 "문자열"의 길이를 계산하지만, 그것이 어떻게하는지는 저를 넘어서는 방법입니다.

${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
도움이 되었습니까?

해결책

"zsh 프롬프트 Regex"를 구글링하고 발견했습니다. 이것. $#은 내용의 길이를 계산한다고 말합니다. 해당 링크에는 더 많은 정보가 있습니다 ZSH 사용자 안내서 나는 찾았다.

다른 팁

패턴은 일부 Ansi 스타일 문자 형식을 제거한 후 문자열의 길이를 계산합니다.

약:

  • ${# } - 길이

  • ${ } - 중첩

  • (S%%) - 끝에서 시작하는 서브 스트링

  • // - 전세계 대체물 (이 경우 나중에 슬래시가 없으므로 삭제)

  • ( ) - 캡처 그룹

  • \% - 문자 퍼센트 부호

  • [KF1] - 문자 목록 : k = 배경색 시작, f = 전경 색상 시작

  • [Bbkf] - 문자 목록 : B = BEART BEART BOLD, B = END BOLD, K = 끝 배경, F = 끝 포 그라운드

그리고 나는 길을 잃었다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top