정규식을 사용하여 파이썬의 문자열에서 단어로 가져 오는 방법 [중복]
Nov 25 2020
나는 같은 문자열이
string = "Status\t\t: PASS"
이 문자열에서 PASS 만 가져오고 싶습니다.이 정규식을 사용하고 있습니다.
value = re.findall("Status" + r'(.*)', string)
그러나 그것은 나를 반환
" : PASS"
정규식이 모든 추가 문자 공백 탭 등을 무시하도록하고 싶습니다. 어떻게해야하는지 알려주세요.
답변
3 VivekKumar Nov 25 2020 at 13:36
방법 : regex () + string.punctuation 사용이 방법도 정규식을 사용했지만 모든 구두점을 무시하고 필터링 된 결과 문자열을 얻기 위해 모든 구두점을 가져 오는 문자열 함수를 사용합니다.
# Python3 code to demonstrate
# to extract words from string
# using regex() + string.punctuation
import re
import string
# initializing string
test_string = "Geeksforgeeks, is best @# Computer Science Portal.!!!"
# printing original string
print ("The original string is : " + test_string)
# using regex() + string.punctuation
# to extract words from string
res = re.sub('['+string.punctuation+']', '', test_string).split()
# printing result
print ("The list of words is : " + str(res))
산출:
The original string is : Geeksforgeeks, is best @# Computer Science Portal.!!!
The list of words is : [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’]
2 tshiono Nov 25 2020 at 14:25
다음을 시도해 주시겠습니까?
import re
string = "Status\t\t: PASS"
m = re.search(r'Status\s*:\s*(.*)', string)
print(m.group(1))
산출:
PASS
정규식 설명 Status\s*:\s*(.*)
:
Status\s*
하위 문자열 "상태"및 가능한 경우 다음 공백 문자와 일치합니다.:\s*
문자 ":"및 다음 공백 문자 (있는 경우)와 일치합니다.(.*)
나머지 부분 문자열과 일치하고 캡처 그룹 1이 할당됩니다.
1 Heo Nov 25 2020 at 14:23
이것을 시도하십시오 : regex-demo
Python 소스 :
import re
input1 = "Status\t\t: PASS"
input2 = "Status\t\t: PASS hello"
input3 = "Status\t\t: FAIL hello world"
regex=re.compile('status\s*:\s*(\w+)',flags=re.IGNORECASE)
print(f'result of input1: \n {regex.findall(input1)}')
print(f'result of input2: \n {regex.findall(input2)}')
print(f'result of input3: \n {regex.findall(input3)}')
산출:
result of input1:
['PASS']
result of input2:
['PASS']
result of input3:
['FAIL']