Lea Verou씨가 Best of Fluent 2012에서 했던 강연 동영상에서 나왔던 내용으로 다음과 같은 것이 있다.
function wordCount(text) {
return text.split(/\s+/).length;
}
/^#([a-f\d]{3}){1,2}$/i.test(str);
/^(?=.*\d)(?=.*[a-z])(?=.*[\W_]).{6,}$/i
/\b(?!\d+[50]0)\d+\b/
/^(?!.*foo).+$/
함께 소개된 RegExp playground 사이트도 웹 브라우저에서 간단한 Regular Expressions를 실험해 볼 수 있는 도구로 안성맞춤이고, 해당 패턴을 tweet으로 공유할 수도 있다.
영상 끄트머리에도 얘기되었는데 정규식 패턴을 짤 땐 그 정확도도 중요하지만, 너무 정확도에 치중한 나머지 실제 적용하면 들인 노력에 비해 그 성능이나 실용성 면에서 별 큰 이득이 없을 수도 있다는 점을 명심해야 한다.
터미널에서 많이 쓰이는 명령으로 특정 디렉터리를 만든 후 해당 디렉터리로 바로 이동하려고 할 때 다음과 같은 명령을 자주 쓴다.
$ mkdir foo
$ cd foo
하지만 이 mkdir와 cd 작업을 명령어 하나로 한꺼번에 수행해주는 방법이 있는데, ~/.bashrc 파일에 다음과 같은 함수를 저장한 후 사용할 수 있다.
function mkcd {
if [ ! -n "$1" ]; then
echo "Enter a directory name"
elif [ -d $1 ]; then
echo "\`$1' already exists"
else
mkdir $1 && cd $1
fi
}
그러면, 터미널에서 다음과 같은 명령어 하나로 두 작업을 동시에 처리해준다.
$ mkcd foo
덤으로, cd
명령을 좀 더 유연하게 사용할 수 있는 것으로 다음과 같은 fuzzy cd 명령어를 등록해 놓으면, 이동하고자 하는 디렉터리의 이름 중 일부분만을 입력해도 자동으로 인식해서 해당 디렉터리로 이동시켜주므로 타이핑의 수고를 아주 약간 더 줄일 수 있다.
function cf {
shopt -q nocasematch || resetcase=1
shopt -s nocasematch
for i in *; do [ -d "$i" ] && [[ "$i" == *"$1"* ]] && cd "$i" && break; done
[ $resetcase ] && shopt -u nocasematch
}
그냥 입력된 숫자를 통화 표기 형태의 숫자로 바꿀 때 유용.
JavaScript에서의 사용 예:
var one_million = '1000000.00'.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');