정규식 입니다... 정보
정규식 입니다...본문
&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0
그누보드의
&sca= ... & 사이에 있는 값을 바꾸고 싶어요.
예상하는 행태는 4가지 입니다.
&sca=...
&sca=...&
?sca=...
?sca=...&
클럽2 utf-8 삭제에서 문제가 생겨서, 도와주세욤~! ㅠ..ㅠ...
그누보드의
&sca= ... & 사이에 있는 값을 바꾸고 싶어요.
예상하는 행태는 4가지 입니다.
&sca=...
&sca=...&
?sca=...
?sca=...&
클럽2 utf-8 삭제에서 문제가 생겨서, 도와주세욤~! ㅠ..ㅠ...
댓글 전체

이걸 말하는 건지 모르겟네요
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
//&sca=...
$case1 = preg_replace("`&sca=([^&]+)&.+$`", '&sca=\1', $str);
echo $case1 . '<br />';
//&sca=...&
$case2 = preg_replace("`&sca=([^&]+)&.+$`", '&sca=\1&', $str);
echo $case2 . '<br />';
//?sca=...
$case3 = preg_replace("`&sca=([^&]+)&.+$`", '?sca=\1', $str);
echo $case3 . '<br />';
//?sca=...&
$case4 = preg_replace("`&sca=([^&]+)&.+$`", '?sca=\1&', $str);
echo $case4 . '<br />';
?>
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
//&sca=...
$case1 = preg_replace("`&sca=([^&]+)&.+$`", '&sca=\1', $str);
echo $case1 . '<br />';
//&sca=...&
$case2 = preg_replace("`&sca=([^&]+)&.+$`", '&sca=\1&', $str);
echo $case2 . '<br />';
//?sca=...
$case3 = preg_replace("`&sca=([^&]+)&.+$`", '?sca=\1', $str);
echo $case3 . '<br />';
//?sca=...&
$case4 = preg_replace("`&sca=([^&]+)&.+$`", '?sca=\1&', $str);
echo $case4 . '<br />';
?>
한번에...ㅠ.ㅠ...

어떻게 한다는 건지 정확한 의미를 모르겟어요....

http://regex.kr 에 질문해 주시면 열과 성의를 다해 연구해 보겠습니다.
^^

이걸 말하는 건가요?
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
?>
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
$replace_str = 'ccccc';
$result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
echo $result . '<br />';
?>
^_____________________________________________________^...
그런데, $str에서 $replace_str ... 에 해당하는 값을 찾으려면 어떻게 하죠???
$replace_str에 해당하는 값을 찾아서, 그것을 urldecode해서 바꾸려고 하는 것이라서요.
1. $str에서 $replace_str에 해당하는 값을 찾는다
2. $replace_str= urldecode($replace_str);
3. $result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
날잡아서 한달쯤 정규식 공부 해야할까봐요. ㅠ..ㅠ...
그런데, $str에서 $replace_str ... 에 해당하는 값을 찾으려면 어떻게 하죠???
$replace_str에 해당하는 값을 찾아서, 그것을 urldecode해서 바꾸려고 하는 것이라서요.
1. $str에서 $replace_str에 해당하는 값을 찾는다
2. $replace_str= urldecode($replace_str);
3. $result = preg_replace("`sca=([^&]+)(&?)`", 'sca=' . $replace_str . '\2', $str);
날잡아서 한달쯤 정규식 공부 해야할까봐요. ㅠ..ㅠ...

그 부분을 urldecode 하는 것이 목적이라면
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
?>
이렇게 하시면 됩니다.
<?php
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90&page=0';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '&sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
$str = '?sca=%5C%EC%9E%90%5C%EC%9C%A0%EA%B2%8C%5C%EC%8B%9C%5C%ED%8C%90';
echo urldecode($str) . '<br />';
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . urldecode('\\1') . '\\2'", $str);
echo $result . '<br /><br />';
?>
이렇게 하시면 됩니다.
학...이렇게 한줄로 되는거에요? 넘 감사드립니다. ㅠ.ㅠ....
그누보드에 $sca가 들어갔다 나올때, utf-8에서는 encode 때문에 문제가 되더라구요.
그래서, 굳이 풀어버리는게 필요해서요.
그누보드에 $sca가 들어갔다 나올때, utf-8에서는 encode 때문에 문제가 되더라구요.
그래서, 굳이 풀어버리는게 필요해서요.
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . str_replace('\\','', urldecode('\\1')) . '\\2'", $qstr);
이렇게 \\1의 결과에 str_replace까지 하려구 했더니, 안되네요. ㅠ..ㅠ...
이렇게 \\1의 결과에 str_replace까지 하려구 했더니, 안되네요. ㅠ..ㅠ...
$result = preg_replace("`sca=([^&]+)(&?)`e", "'sca=' . str_replace(\"\\\\\\\", \"\", urldecode('\\1')) . '\\2'", $qstr);
유창화님이 최종으로 알려주신 것 입니다. 잘 되요.
유창화님이 최종으로 알려주신 것 입니다. 잘 되요.