가장 좋은 방법은 일치 무엇인지 궁금 해서요 "test.this"
에서 "blah blah blah test.this@gmail.com blah blah"
인가? Python 사용.
난 노력 했어 re.split(r"\b\w.\w@")
가장 좋은 방법은 일치 무엇인지 궁금 해서요 "test.this"
에서 "blah blah blah test.this@gmail.com blah blah"
인가? Python 사용.
난 노력 했어 re.split(r"\b\w.\w@")
답변:
정규식 에서 점 을 이스케이프"\."
하거나 문자 클래스 내에서 사용해야합니다 "[.]"
. 이는 정규식의 메타 문자이므로 모든 문자와 일치합니다.
또한 하나 이상의 단어 문자와 일치하는 \w+
대신 필요 \w
합니다.
이제 test.this
콘텐츠 를 원한다면 split
필요한 것이 아닙니다. split
문자열을 test.this
. 예를 들면 :
>>> re.split(r"\b\w+\.\w+@", s)
['blah blah blah ', 'gmail.com blah blah']
다음을 사용할 수 있습니다 re.findall
.
>>> re.findall(r'\w+[.]\w+(?=@)', s) # look ahead
['test.this']
>>> re.findall(r'(\w+[.]\w+)@', s) # capture group
['test.this']
이 표현은
(?<=\s|^)[^.\s]+\.[^.\s]+(?=@)
특정 유형의 입력 문자열에 대해서도 정상적으로 작동 할 수 있습니다.
import re
expression = r'(?<=^|\s)[^.\s]+\.[^.\s]+(?=@)'
string = '''
blah blah blah test.this@gmail.com blah blah
blah blah blah test.this @gmail.com blah blah
blah blah blah test.this.this@gmail.com blah blah
'''
matches = re.findall(expression, string)
print(matches)
['test.this']
표현식을 단순화 / 수정 / 탐색하려는 경우 regex101.com의 오른쪽 상단 패널에 설명되어 있습니다. 원하는 경우이 링크 에서 일부 샘플 입력과 어떻게 일치하는지 볼 수도 있습니다.
\w
당신은 아마 원하는 - 단 하나의 문자와 일치\w+