XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

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

      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
번호 제목 글쓴이 날짜
2756 애드센스 잘 아시는 분 부탁드립니다~ 4 다이오니 2016.09.06
2755 PHP 7.0.8 에서 files/cache/template_compiled 이상한점.. 5 구름이 2016.09.06
2754 robots.txt 만들려고 하는데 xetown처럼 만들면 되는건가요? 4 삼삼이 2016.09.06
2753 스케치북 5 스킨 댓글 이전 입력내용 쿠키에 남기는 기능 없애려면? 6 웹지기 2016.09.06
2752 클플 디도스 체크하는걸 우회 할수 있을까요? 1 스마일 2016.09.05
2751 opcache 메모리설정 질문 2 가브리엘조 2016.09.04
2750 라이믹스 코어 기본 부트스트랩 rhymix.scss 제거법. 2 chowolms 2016.09.04
2749 홈페이지 하단 Copyright 바의 가운데 정렬을 하고 싶어요. 9 file 동시성 2016.09.04
2748 구글개발자 코드로 디버그 해보려고 하는데 . 1 file 이성민 2016.09.04
2747 게시판 자체에 비밀번호를 걸 수 있을까요? 4 다이오니 2016.09.04
2746 스케치북 게시판에서 제목색깔과 굵기 적용이 '모든 사용자' 선택을 하면 적용이 안되네요 dongdong 2016.09.04
2745 댓글수신표시 애드온 목록에서 동작하려고 하면....? 2 웹지기 2016.09.04
» xe core 분석중, php 정규표현식에 관련해서 질문드립니다. 4 갸라 2016.09.04
2743 도메인에 대해서 잘 아시는분? 12 NEX 2016.09.04
2742 아이피 노출 관련 10 오늘찌 2016.09.04
2741 게시글에 비밀번호 거는 법 3 데버 2016.09.03
2740 특정게시판만 원하는 이미지 노출 9 세희타운 2016.09.03
2739 [XECon + PHPFest 2014] Session 3-2 : ElasticSearch를 이용한 통합검색 구축방법 2 이성민 2016.09.03
2738 경험치 시스템 모듈 1 보고하비 2016.09.03
2737 이런걸 여기 여쭤봐도 될지 모르겠지만... 2 file 윤체리 2016.09.02
Board Pagination Prev 1 ... 85 86 87 88 89 90 91 92 93 94 ... 227 Next
/ 227
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...