cgy12306

문자열 본문

PHP

문자열

cgy12306 2019. 7. 9. 23:22

문자열

문자열을 표기할 땐 ‘(단따옴표), “(쌍따옴표)를 사용한다.

를그냥 문자로 표기할 땐 \를 앞에 붙여준다.

줄 바꿈 할 때는 쌍따옴표 안에서 \n, \r을 사용한다.

문자열 안에서 변수를 사용하려면 쌍따옴표 안에서 {}(중괄호)를 사용한다.

문자와 문자를 더 할 때는 .(마침표)를 사용한다.

이 부분은 앞의 예제에서 많이 봤기 때문에 그냥 넘어가겠다.

 

정규표현식

정규 표현식은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 검색하거나 치환하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단이다.

PHP와 정규표현식

PHP의 정규표현식은 구분자로 시작해서 구분자로 끝을 내야한다.

닫히는 구분자 뒤에는 옵션이 위치할 수 있는데 옵션에 따라서 정규표현식이 다르게 동작한다. i는 대소문자를 구분하지 않고, m은 줄 바꿈 문자에 따라서 텍스트의 행을 구분하도록 한다.

ex) /foo bar/im

PHPUNIX 스타일의 정규표현식인 eregperl 스타일의 정규표현식인 preg를 사용한다. 이 중에서 ereg는 폐지 예정이기 때문에 사용해서는 안된다.

preg_match

preg_match는 검색을 수행하고 일치하는 내용을 반환한다.

 

 

 

\b는 단어의 경계를 의미한다. 그렇기 때문에 \b로 감싸진 webweb이라는 독립된 단어를 의미한다. websitewebsite가 결합된 단어이기 때문에 이 조건에 해당되지 않는다.

 

~는 다른 구분자이다. \w는 문자를 의미한다. \.은 일반 마침표를 의미한다. \s는 공백을 의미한다. 괄호로 묶어주면 독립된 데이터로 추출하겠다는 것이다. 캡쳐링이라고 한다.

[0]에 들어가는 내용은 괄호 두개를 합친 것이고 [1]에는 첫번째 괄호, [2]에는 두번째 괄호가 들어간다.

preg_match의 세번째 인자는 preg_match에서 알아서 변수를 생성해주고 결과값을 넣어준다.

 

 

http:// 시작하는 걸 찾는다. ?:를 쓰면 matches안에 담기지 않게 된다. ?는 없거나 하나만 등장하게 한다. ^는 어떤 문자열의 시작이지만 대괄호안에 들어가게 되면 not을 의미하게 된다.

www.php.nethost에 들어가게 된다.

두번째 preg_match.이 아닌 문자가 1개 이상 + . + .이아닌 문자 1개 이상 + 문자열의 끝에 해당되는 경계($) 이다.

matches에는 php.net이 들어가게 된다.

 

 

문자가 하나보다 많다면 괄호로 감싸주고 name이 배열안에 있는 키 값을 의미, +는 하나이상을 의미. 연관배열로 되어있음.

 

preg_replace

preg_replace는 검색한 다음 치환명령을 수행한다.

첫번째 인자는 패턴, 두번째 인자는 변경할 값, 세번째 인자는 문자열(변수)

 

 

${번호} 번호에 해당하는 하위표현식에 해당, 그러면 April1이 들어간다. 뒤에 $32003이 들어간다.

 

 

인덱스 순서대로 치환이 되는게 아닌 배열의 생성 순서대로 치환이 된다.

quick => bear, brown => black, fox => slow 로 변경된다.

 

 

패턴을 보면 (19또는 20)(2자리숫자) – (숫자가 한자리 이상 두자리 이하) – (한자리이상 두자리 이하), (제일 처음 공백이 있을 수도 있고 없을 수도 있다{문자열 하나 이상}공백이 있을 수도 있고 없을 수도 있다 =  

replace3번째, 4번째, 1번째, 2번째 값이 온다. 그 후 첫번째 인덱스 =

이렇게 된다.

궁금한 점은 배열상으론 날짜가 나오고 startdate라는 문자가 되어있는데 출력 순서는 startdate후에 날짜가 나온다는 점이다.

 

출처 : https://opentutorials.org/course/62/5141

 

정규 표현식 - 생활코딩

정규 표현식 정규 표현식(正規表現式,Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다. 선행지식 정규 표현식은 이것 자체로도 한권의 책이 필요할 정도로 방대하다. (물론 간단한 정규 표현식을 배우는데는 큰 노력이 들지 않는다.) 정규 표현식에 대해서 잘 모른다면 '정규 표현식 패턴들' 수업을 먼저 보고 이후의 내용을 학습하는 것을

opentutorials.org

 

'PHP' 카테고리의 다른 글

쿠키와 세션  (0) 2019.07.09
데이터 베이스  (0) 2019.07.09
이미지 다루기  (0) 2019.07.09
파일 업로드  (0) 2019.07.09
디렉토리 제어  (0) 2019.07.09
Comments