2017-11-07 1 views
-3

저는 파이썬에서 regex를 사용하여 문자열에서 첫 단어를 가져 오는 표현식을 만들었습니다. 그러나이 경우 PONY과 같이 특정 단어를 찾을 수있는 방법이 있습니까? 둘 다 문자가 네 글자이고 후자가 대문자 인 경우 정규식을 사용하여 PONY을 찾을 수 있다고 생각합니다. 첫 번째 표현 만 표현할 수있었습니다!정규식을 사용하여 문자열에서 단어를 가져올 수 없습니다.

import re 

arg_str = "Jony is after PONY not phoney" 
item = re.findall(r'([a-zA-Z]...+?)',arg_str) 
print(item[0]) 
+1

무엇을 의미합니까? '조랑말'을 얻기위한 규칙을 어떻게 설명 할 수 있습니까? ['arg_str.split() [3]'] (https://ideone.com/xFGNtP)? –

+1

'(조랑말)'은 정확한 단어를 찾는 데 도움이 될 것입니다. – harshil9968

+0

"specificword"에 대한 정규 표현식은 "specificword"입니다. – timgeb

답변

1

어떤 특정 단어 : 내가 첫 번째 단어를 찾으려고 무엇

? 다음은 어떨까요?

words = re.findall(r" *\w+ *", arg_str) 

for word in words: 
    print(word) 

출력 : 당신은 문자열에서 단어의 첫 발생을 찾으려면

Jony 
is 
after 
pony 
not 
phoney 
+0

Sam Chats에게 답변 해 주셔서 감사합니다. 이제 인덱스를 사용하여 원하는대로 가져올 수 있습니다. Btw, 너 한테 한마디 설명 해줘서 제게 좀 쉬워 질 수 있겠 니? 내 무지를 용서해. 감사. – SIM

+0

@Topto 공백 뒤에 *가 오는 것은 0 개 이상의 공백을 의미하며, \ w +는 둘 이상의 영숫자 또는 단어를 의미합니다. –

+0

Sam Chats에게 감사드립니다. +1. – SIM

0

사용 str.find :

arg_str = "Jony is after pony not phoney" 
print(arg_str.find("pony")) 

첫 번째 단어를 찾으려면 :

print(arg_str.split()[0]) 
+1

find는 부분 문자열을 찾을 것입니다 : ex :'epony' –

+0

* '부분 문자열이 슬라이스 안에서 발견되는 문자열에서 가장 낮은 인덱스를 반환합니다.'[start : end] '* –

관련 문제