정규표현식에 관하여 - 조언 부탁드립니다.

maindb의 이미지

정말 환장하겠네요.
레퍼런스와 구글링 하면서 이렇게 저렇게 해보고 있는데
당췌 힘드네요.

문제는... 특수문자의 구분입니다.
php 에서 특수문자의 입력을 잡아내고 싶습니다.

한글,영문,숫자는 되지만 특수문자는 하나라도 있으면
안된다는 조건을 만족하기 위한 정규표현식을 만들려면
어떻게 해야 할까요?

조언 부탁드립니다.

mr.lee의 이미지

일단 어떤 특수문자를 말하는지 모르겠군요.

이를테면 키보드에서 입력가능한 특수문자만 일컫는것인지...

아니면, 입력될때의 언어코드에서(utf-8혹은 euc-kr등등..) 에서 한글, 영문, 숫자를 제외한 나머지 모든 문자를 일컫는 것인지...

전자같으면 정규표현식으로 구현해도 무방하겠지만 후자같으면 그 갯수가 워낙 많을것이므로 프로그램적으로 구현하셔야 할 것 같으네요. (코드값의 범위를 이용하는 방식이 좋지 않을까 싶군요)

전자의 방식같으면..

대충 의사코드적으로 의미만 전달한다면,

string S = "입력문자열"
string Regex = "[*^=.]" // 원하는 모든 특수문자를 [] 속에 열거
// [] 안에서는 '^'나(맨첨에올때) '-' 를 제외하고는 모두 일반문자 취급됨
if (regexMatch(S, Regex) == true) {
   cout << "특수문자 있음" << endl;
}

뭐 이러면 될것입니다만,

음, 너무 기본적인 답이었나 모르겠군요. 아마 이렇게는 해보셨을것 같습니다만.

ssehoony의 이미지

$reg = "[!@#$%^&*()_+|\-=\\\';\\":/.,?><\[\]\{\}`~]"

위 처럼 대괄호 [ ] 안에 특수문자를 나열하세요.

이런건 정규표현식 조금만 공부해도 알 수 있는건데...
이런 답변을 원하시는게 아닐 수도 있겠네요.

쿠크다스의 이미지

제가 php를 한번도 안 써봐서 잘 모르겠지만,
특수문자에 해당하는 문자클래스를 쓰면 되지 않을까요?

grep같으면,
grep [[:punct:]] test_file
이렇게요.
위에서 [:punct:]가 문자클래스입니다.

과자가 아닙니다.
cuckoo dozen, 즉.12마리의 뻐꾸기란 뜻입니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.