리자

문제) 다음의 코드에서 주석만 얻으세요.

· 2011-09-21 (수) 15:30:08 · 3128 · 27
 
$str = "
function doSpellCheck(form, field) {
    /* Make sure not empty * /
    if (field.value == '') {
        return false;
    }
    / * Init * / var y = 2;
    var winfowName = 'spellWindow';
    var spellCheckURL = 'spell.cfm?formname=comment&fieldname='+field.name;
    ...
    var x = 1; /* i Like
 x */
    return false;
}
";
 
/* */ 주석문 안의 문자열만 가지고 오는 정규표현식을 알려주세요.
 
결과)
Make sure not empty
Init
i LIke x
또는
i Like
x 
|

댓글 27개

$str = "
function doSpellCheck(form, field) {
/* Make sure not empty * /
if (field.value == '') {
return false;
}
/ * Init * / var y = 2;
var winfowName = 'spellWindow';
var spellCheckURL = 'spell.cfm?formname=comment&fieldname='+field.name;
...
var x = 1; /* i Like
x */
return false;
}
";



preg_match_all("`/\s*\*(.+)\*\s*/`sU", $str, $m);

print_r($m);
Array
(
[0] => Array
(
[0] => /* Make sure not empty * /
[1] => / * Init * /
[2] => /* i Like
x */
)

[1] => Array
(
[0] => Make sure not empty
[1] => Init
[2] => i Like
x
)

)
저도

preg_match_all("#/\s*\*(.+?)\*\s*/#s", $str, $m);

print_r($m);


Array
(
[0] => Array
(
[0] => /* Make sure not empty * /
[1] => / * Init * /
[2] => /* i Like
x */
)

[1] => Array
(
[0] => Make sure not empty
[1] => Init
[2] => i Like
x
)

)
(.+?) 이게 조금 이상한것 같긴 한데요.

? 는 바로 앞의 문자가 한개 있거나 없거나 이런뜻인데

.* 와 붙여서는 의미가 없는거 같아요

* 자체가 없거나 있거나
그리고 U 옵션이 있는게 좋습니다.

관리자님처럼 햇을 경우

$str = "
function doSpellCheck(form, field) {
/* Make sure not empty * / dd /* ddd*/
if (field.value == '') {
return false;
}
/ * Init * / var y = 2;
var winfowName = 'spellWindow';
var spellCheckURL = 'spell.cfm?formname=comment&fieldname='+field.name;
...
var x = 1; /* i Like
x */
return false;
}
";

이런경우 원하는 답이 안나와요
관리자님의 경우 .*? 이게 잇어서 U 를 안줘도 되는 군요....
그래도 참고 삼아 코멘트는 놔두게습니다.
+ 탐욕적 수량자
+? 게으른 수량자
입니다.

U 패턴 변경자와 같은 역할을 하는것 같습니다.
오....
그러네요.
한개 배웟습니다.
저도 그 책에서 봤습니다. ㅎ

근데 에디트플러스로 치환작업할 때 게으른수량자가 동작을 안하더라구요.
에디트 플러스에선 동작안하는게 많더라구요.
네 에딧플러스에서는 안되는게 더 있는것 같습니다.
subpatterns

이걸 좀 써봐야 하는데
? 이렇게 시작하는거......

이건 아직 쓸일이 없어 공부하지 않았습니다.
예제 있음 좀 알려주세요.

http://kr.php.net/manual/en/regexp.reference.subpatterns.php
서브패턴을 완벽하게 이해하면 HTML 태그를 마음 먹은대로 주무를수 있을것 같던데요.
실제 어느 상황에서 사용해야 하는지는 잘 생각이 안나더라구요.
네에 이걸 좀 공부해야 하는데 제가 하는데에선 거의 쓸일이 거의 없더라구요.
근데 / * Init * / 이건 주석이 아니라 에러잖아요.

근데 문제라고 생각하면
/* */ 이게 표시가 안되더라구요.
그래서 임시로 ... ㅠㅠ
preg_match_all("`(?<=/\*)(.*?)(?=\*/)`s", $str, $matches);
print_r($matches);

이미 문제의 답이 나왔으므로 전 주석만 출력 ㅠㅠ
그냥 일전에 배웠던 얕은 지식만으로 풀이해 보자면
후방(?<=)에 /* 이 문자열이 있고
전방(?=)에 */ 이 문자열이 있는
(.*?) 을 찾는 것 같습니다.
(?<=/\*) 와
(?=\*/) 의 의미가 뭐에요?
정규식의 방향이라고 알고 있는데 설명은 못하겠네요.

(?<=) 와 (?=)는 패턴결과물에서 출력되지 않으며
(?<=) 는 패턴뒤를 보고 (?=) 는 패턴 앞을 본다는데
예제를 만들 수 없네요. 그냥 외우고 있어서..

(?<=) 는 후방탐색(lookbehind)
(?=) 는 전방탐색(lookahead) 라고 부른답니다.

저도 다 이해는 못했어요...
네 이거 예제 없음 이해하기 힘들더라구요.
2011-09-22 (목) 11:02:17
cat 으로 땡겨서 프린트 하면 욕먹겠죠;;
ㅜㅜㅜ 개발자님..사람 맞으세요..?
개발자 님과 동 시대에 산다는게 영광입니다.
음 먼말인지 당췌 ㅡㅡ;;
끄응
좋은 패턴 배우고 갑니다. ^^
ㅎㅎㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
11-10-18 조회 2,503
11-10-18 조회 2,410
11-10-18 조회 2,313
11-10-17 조회 3,681
11-10-17 조회 4,981
11-10-17 조회 2,343
11-10-17 조회 2,593
11-10-17 조회 3,710
11-10-16 조회 2,397
11-10-16 조회 3,037
11-10-16 조회 3,472
11-10-15 조회 1.2만
11-10-15 조회 3,131
11-10-15 조회 2,864
11-10-15 조회 3,537
11-10-15 조회 3,521
11-10-15 조회 2,766
11-10-14 조회 2,800
11-10-13 조회 2,574
11-10-13 조회 4,351
11-10-12 조회 2,397
11-10-12 조회 2,553
11-10-12 조회 3,658
11-10-12 조회 3,963
11-10-12 조회 2,308
11-10-11 조회 2,817
11-10-11 조회 2,467
11-10-11 조회 2,642
11-10-11 조회 2,876
11-10-10 조회 2,586
11-10-10 조회 2,541
11-10-10 조회 2,247
11-10-10 조회 2,252
11-10-10 조회 2,540
11-10-10 조회 2,642
11-10-09 조회 2,466
11-10-08 조회 2,464
11-10-08 조회 4,408
11-10-08 조회 2,768
11-10-07 조회 2,990
11-10-07 조회 2,834
11-10-07 조회 3,330
11-10-06 조회 3,923
11-10-06 조회 2,474
11-10-06 조회 2,582
11-10-06 조회 3,654
11-10-06 조회 2,607
11-10-06 조회 4,143
11-10-06 조회 2,374
11-10-05 조회 2,617
11-10-05 조회 2,811
11-10-05 조회 3,893
11-10-04 조회 2,777
11-10-04 조회 5,222
11-10-04 조회 2,702
11-10-04 조회 2,255
11-10-03 조회 2,599
11-10-02 조회 2,499
11-10-02 조회 3,224
11-10-01 조회 2,254
11-10-01 조회 2,476
11-09-30 조회 2,466
11-09-30 조회 2,547
11-09-30 조회 2,757
11-09-30 조회 2,756
11-09-30 조회 3,520
11-09-30 조회 2,543
11-09-30 조회 2,952
11-09-29 조회 4,786
11-09-29 조회 2,620
11-09-29 조회 2,542
11-09-29 조회 2,950
11-09-28 조회 2,976
11-09-28 조회 3,812
11-09-28 조회 3,029
11-09-28 조회 2,403
11-09-28 조회 2,343
11-09-28 조회 2,204
11-09-28 조회 2,478
11-09-28 조회 3,978
11-09-26 조회 2,400
11-09-26 조회 2,461
11-09-26 조회 2,574
11-09-25 조회 2,915
11-09-24 조회 2,409
11-09-23 조회 2,654
11-09-23 조회 3,212
11-09-23 조회 2,398
11-09-23 조회 2,817
11-09-23 조회 2,172
11-09-22 조회 2,337
11-09-22 조회 2,760
11-09-21 조회 3,129
11-09-21 조회 3,153
11-09-20 조회 2,727
11-09-20 조회 2,546
11-09-20 조회 3,087
11-09-19 조회 2,605
11-09-19 조회 5,882
11-09-19 조회 3,651