특정단어를 찾아바꾸는 정규표현식에 관련 질문 드립니다.

centos의 이미지

안녕하세요. 가끔 글올리는 시스템se 입니다 ㅡㅡ;

정규표현식 관련 질문하나 드리겠습니다~

perl -p -i -e 's/asdf/read/g' aa.txt //asdf 라는 문자열을 read 로 바꾼다~

위의식의 정규표현식을 알고 있습니다만~

만약 문서파일의 msg(mysql_error()) 라는 문자열을 모두 지우고 싶다면 어떤식으로 정규표현식을 써야 하나요?

perl -p -i -e 's/msg(mysql_error())//g' aa.txt

위의 식은 역시나 안먹히더라구요~

도와주시면 감사하겠습니다

keke111의 이미지

괄호앞에다가 모두 역슬래쉬 처리해줘야 해보시길 바랍니다.

centos의 이미지

안녕하세요.~
답변 무지하게 감사합니다만~
님의 답변은 종전에 해본적이있으나..
되지 않았었습니다 ㅠ.ㅠ

irondog의 이미지

aa.txt라는 곳이 만일 다음과 같이 구성되어 있다면...

Quote:

alskjdf
slkfsadjf
msg(mysql_error("Test1"))
msg(mysql_error("Test2"))

다음 치환 코드로는 "Test1"과 같은 괄호안의 문자에 대한 매치가 없기 때문에 해당 문장이 없다고 판단하게 될 것이고 변환이 이루어지지 않는 것은 당연합니다.

perl -p -i -e 's/msg\(mysql_error\(\)\)//g' aa.txt 

해서 다음과 같이 괄호 안에 적당한 매치를 더 넣어줘야 합니다. 그래서 ".*?"를 넣었습니다.
이렇게 하면 해당 영역을 공백으로 만들고 빈 라인으로 만들어 줄겁니다.
perl -p -i -e 's/msg\(mysql_error\(.*?\)\)//g' aa.txt 

만일 괄호안의 문자로 치환해야 한다면 다음과 같이 하시면 되겠죠.
perl -p -i -e 's/msg\(mysql_error\((.*?)\)\)/$1/g' aa.txt 

vacancy의 이미지


음 뭐 제가 해보지는 않았습니다만,
우려가 되는 것이 있는데요 ..
. 이 )에는 매치되지 않나요 ?..;
그리고 *가 zero match도 허용될것 같아서
? 는 왠지 없어도 될 것 같습니다만 ..;

irondog의 이미지

'.*'은 당연히 괄호 문자 모두 매치 됩니다.
'?'을 붙였기 때문에 일단 닫힘 괄호가 2개 나오기 전까지는 모두 매치 시키겠죠.

만일 닫힘 괄호 2개 연속 나오는 것이 라인 마지막에 나오고, 중간에 닫힘 괄호 2개가 들어갈 수 있는 문장이라면 '?'를 빼면 됩니다.

vacancy의 이미지

네, 설명 감사드립니다. ^^
? 의 해석이 여기서는 어디까지 해석하는지에 영향을 주는군요.

centos의 이미지

답변 감사드립니다~

댓글 달기

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