XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.
조회 수 41 댓글 4

코어 분석중에 (?: 과 같은 패턴이 나와서 관련 내용을 찾아서 읽어봤습니다.

      https://secure.php.net/manual/en/regexp.reference.subpatterns.php

내용을 보면,

           For example, if the string "the red king" is matched against the pattern the ((red|white) (king|queen)) the captured substrings are "red king", "red", and "king", and are numbered 1, 2, and 3.

  ....

 For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2.

 

이렇게 나와있었습니다. 그런데 여기서 좀 의아했던게, 저렇게 ((red|white) (king|queen)) 이라면

red king만 매치가 돼야 하는게 아닌가라는 생각이 들었습니다. red와 white 중 하나, king과 queen중 하나가 존재하는 문자열만 매칭시켜야 하는것 아닌가 라는 생각이 들어서였는데, regexr.com 에서 테스트한 결과도 그렇더군요. 그래서 결론 내리기를 php에서 특수하게 인정하는 패턴인가 보다.. 했습니다.

근데 혼자 결론내리기가 좀 찝찝해서 다른 분들의 의견을 좀 듣고 싶었습니다. 회원님들의 지식 공유 부탁드립니다ㅎ

  • profile
    기진곰 2016.09.04 13:47:48

    정규식을 쓸 때 괄호로 묶은 부분은 모조리 $matches로 반환하고, 이중으로 괄호를 쓰면 이중으로 반환이 됩니다. 그러나 괄호 안에 ?:를 쓰면 그 부분은 반환하지 않습니다. 불필요한 데이터를 반환하지 않도록 하면 성능도 좋아지고 프로그래밍하기도 편해지거든요. 그 밖의 차이는 없어요. 정규식 작동 방식에도 아무 영향을 미치지 않습니다.

     

    그래서 위의 예제에서는 red king, red, king을 모두 각각 반환하지만 아래에서는 red|white 부분에 ?:를 붙였기 때문에 white는 별도로 반환하지 않고 white queen과 queen만 반환합니다. red나 white나 둘 중 아무거나 하나만 있으면 됐지, 실제로 red인지 white인지는 알 필요가 없다! 이런 경우에 쓰는 겁니다.

  • ?
    갸라 2016.09.04 13:55:45
    아.. 언제나 명확하십니다. 감사합니다!
  • profile
    구름이 2016.09.04 16:15:14
    감사합니다 또 하나 배워갑니다
  • ?
    갸라 2016.09.08 15:09:19
    넵ㅎ :)

List of Articles
번호 분류 제목 글쓴이 날짜
공지 질문/답변 답변을 확실히 받기위한 질문자 지침서 20 람보 2015.12.31
2760 질문/답변 모듈 자동 생성기가 있나요? 7 구름이 2016.09.07
2759 질문/답변 애드센스 잘 아시는 분 부탁드립니다~ 4 다이오니 2016.09.06
2758 질문/답변 PHP 7.0.8 에서 files/cache/template_compiled 이상한점.. 5 구름이 2016.09.06
2757 질문/답변 robots.txt 만들려고 하는데 xetown처럼 만들면 되는건가요? 4 삼삼이 2016.09.06
2756 질문/답변 스케치북 5 스킨 댓글 이전 입력내용 쿠키에 남기는 기능 없애려면? 6 웹지기 2016.09.06
2755 질문/답변 클플 디도스 체크하는걸 우회 할수 있을까요? 1 스마일 2016.09.05
2754 질문/답변 opcache 메모리설정 질문 2 가브리엘조 2016.09.04
2753 질문/답변 라이믹스 코어 기본 부트스트랩 rhymix.scss 제거법. 2 chowolms 2016.09.04
2752 질문/답변 홈페이지 하단 Copyright 바의 가운데 정렬을 하고 싶어요. 9 file 동시성 2016.09.04
2751 질문/답변 구글개발자 코드로 디버그 해보려고 하는데 . 1 file 이성민 2016.09.04
2750 질문/답변 게시판 자체에 비밀번호를 걸 수 있을까요? 4 다이오니 2016.09.04
2749 질문/답변 스케치북 게시판에서 제목색깔과 굵기 적용이 '모든 사용자' 선택을 하면 적용이 안되네요 dongdong 2016.09.04
2748 질문/답변 댓글수신표시 애드온 목록에서 동작하려고 하면....? 2 웹지기 2016.09.04
» 질문/답변 xe core 분석중, php 정규표현식에 관련해서 질문드립니다. 4 갸라 2016.09.04
2746 질문/답변 도메인에 대해서 잘 아시는분? 12 NEX 2016.09.04
2745 질문/답변 아이피 노출 관련 10 오늘찌 2016.09.04
2744 질문/답변 게시글에 비밀번호 거는 법 3 데버 2016.09.03
2743 질문/답변 특정게시판만 원하는 이미지 노출 9 세희타운 2016.09.03
2742 질문/답변 [XECon + PHPFest 2014] Session 3-2 : ElasticSearch를 이용한 통합검색 구축방법 2 이성민 2016.09.03
2741 질문/답변 경험치 시스템 모듈 1 보고하비 2016.09.03
Board Pagination Prev 1 ... 30 31 32 33 34 35 36 37 38 39 ... 172 Next
/ 172
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...