정규표현식을 써야 될것같은데.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

정규표현식을 써야 될것같은데.. 정보

정규표현식을 써야 될것같은데..

본문

오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.

오류 주소 : 오류는 아님

예로 아래와 같이

A001 A002 A003 ...

B001 B002 B003 ....

위와 같은 값이 있다고 치면,

A001 A002 ... 이값이 들어오면 A를 표시하고 (즉 앞자리 A가 붙고 뒤에 숫자 3자리가붙으면)

B001 B002... 이값이 들어오면 B를 표시하고 싶은데, 정규표현식을 써야 될것같은데 어떻게 구별해야 하죠? 제가 정규표현식은 전혀 몰라서요.

정규표현식좀 알려주세요.
  • 복사

댓글 전체

답변 감사합니다.

정규표현식으로 알려주실수는 없는지요?

입력받을때 A001 이렇게 A는 대문자 나머지는 3자리는 숫자로만 작성하려고 하는데, 이게 정규표현식으로 구분지어야 될것같아요.
문자열을 뒤에서 3개를 잘라서 남아있는 A 나 B를 표시하면 되지 않나요 ?

오누리님....

그리고, 제가 잘 모르긴하지만 리눅스 환경에서는 뚜렷이 대, 소문자 구분을 하지만 윈도우서버 에서는 그럭 저럭 ... 대충 대, 소문자가 그냥 넘어가더라고요....
대문자만 추출해 낸다고 할 때
$aa="A001";
preg_match("/([A-Z])00([1-9])/",$aa, $tmp);
 echo "$tmp[1] == $tmp[2]"; // A == 1

 $aa="B003";
preg_match("/([A-Z])00([1-9])/",$aa, $tmp);
 echo "$tmp[1] == $tmp[2]"; // B == 3

 $aa="b003";
preg_match("/([A-Z])00([1-9])/",$aa, $tmp);
 echo "$tmp[1] == $tmp[2]"; //  ==  <--$tmp[1]="", $tmp[2]=""

대소문자 가리지 않을 때
 $aa="b003";
preg_match("/([A-Za-z])00([1-9])/",$aa, $tmp);
 echo "$tmp[1] == $tmp[2]"; // b == 3
균이님이 정확하게 설명해 주셨네요.

저는 preg_replace 로 간단하게 처리해 보았습니다.

<?
$str = "A001";
echo preg_replace("/([A-Z])([0-9]{3})/", "$1", $str);
?>
© SIRSOFT
현재 페이지 제일 처음으로