이런거 정규식으로 가능한가요??

jic5760의 이미지

내용 : *,12A,BC;AA,BB,CC;DD,*,EE
.......-------- -------- -------
.........토큰1...토큰2...토큰3

이런 내용이 있을 때 (;으로 토큰이 나누어지고 같은 형식의 다른 내용들이 더 길게 있을 수 있습니다.)

*,12A,*;(어떤 내용인지 상관 없는 토큰 2개 이하);*,*,EE
(여기서 *은 어떤 내용인지 상관없다는 뜻)

이런 패턴을 가진걸 정규식으로 찾을 수 있을까요?

(어떤 내용인지 상관 없는 토큰 2개 이하) <-- 이 부분에서 토큰 2개 이하로만 찾기 어렵다면 개수 제한이 없어도 됩니다...

이렇게 복잡한걸 정규식으로 해결 할 수 있을까요???

단순히 매칭되는지 true/false으로 확인할 수 있으면 됩니다.

참고로 php의 preg_match을 사용합니다.

shint의 이미지

$data = "*,12A,BC;AA,BB,CC;DD,*,EE";
$keywords = preg_split("/;/", $data);
print_r($keywords);
echo "<BR>";
echo $keywords[0];	echo "<BR>";
echo $keywords[1];	echo "<BR>";
echo $keywords[2];	echo "<BR>";
print("<BR>");
 
Array ( [0] => *,12A,BC [1] => AA,BB,CC [2] => DD,*,EE ) 
*,12A,BC
AA,BB,CC
DD,*,EE

preg_match 는 여기를 참고해보시기 바랍니다.
http://kldp.org/node/153616

http://kldp.org/node/153700

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

jic5760의 이미지

우선 답변 감사드립니다.
그런데 제가 토큰으로 나눈다는 말을 잘 설명하지 못한거 같네요...ㅠㅠ
저것을 기준으로 토큰을 나누는 작업이 아니라
저런 문자열에서 패턴을 검색하는것을 하려고 합니다.
정규식에 대해 계속 보면서 해보고 있는데 쉽지가 않네요....ㅠㅠ

최종 목적은 데이터베이스 검색인데 한줄의 정규식으로 가능할까요...?

jic5760의 이미지

내용 : *,12A,BC;AA,BB,CC;DD,*,EE
정규식 : /.*,12A,.*;.*;.*,.*,EE/

이렇게 하니 어느정도 되네요~

그런데... 가운데
;.*;
이 부분을
*,*,*; 가 2번이하 반복... 이런 옵션을 주어야 할텐데 이건 모르겠네요...ㅠㅠ

아.. 생각해보니 저 포멧을 맞춰주지 않으면 의미가 없을거 같네요...

*,12A,EE; 이런걸 찾는다 하면...
AA,12A,AA;BB,CC,EE; 이런거까지 찾아질테니..ㅠㅠ

peecky의 이미지

/(pattern){0,2}/ pattern이 0번 이상, 2번 이하

익명 사용자의 이미지

감사합니다~ 덕분에 해결했습니당!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.