답변:
공간을 찾고 있다면 그것은 " "
(한 공간)입니다.
하나 이상을 찾고 있다면 " *"
( 두 공백과 별표) 또는 " +"
(한 공백과 플러스)입니다.
당신이 일반적인 간격, 사용을 찾고 있다면 "[ X]"
하거나 "[ X][ X]*"
또는 "[ X]+"
경우 X
물리적 탭 문자 (각각은 모든 예에서 하나의 공간이 앞에있다).
이것들은 내가 본 모든 * 정규식 엔진 에서 작동합니다 (일부는 하나 이상의 "+"
특성을 가지고 있지 않습니다 ).
당신이 알고 있다면 더 현대적인 정규식 엔진 중 하나를 사용 "\s"
하고 있으며 그 변형이 갈 길입니다. 또한 단어 경계는 줄의 시작과 끝과도 일치한다고 생각합니다. 앞이나 뒤에 공백없이 나타날 수있는 단어를 찾을 때 중요합니다.
편집에서 유효하지 않은 모든 문자를 제거하려는 것으로 나타납니다. 시작 부분은 다음과 같습니다 (정규식 안의 공백에 유의하십시오).
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
각 단어 사이에 공백이 하나만 있고 시작 또는 끝 부분에 공백이 없도록 속임수를 사용하려면 약간 더 복잡하지만 아마도 다른 질문 일 것입니다.
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end
A-Za-z...
. 대괄호 안의 캐럿이이를 지시합니다. 캐럿을 대괄호 밖으로 이동하면 문자열의 시작 부분 에 있는 세트의 문자 와 일치하는 의미로 변경 됩니다.
Perl에서 스위치는 \s
(공백)입니다.