다음 트윗 예는 다음과 같습니다.RegExp : 트윗 (twitter.com)에서 사용자 이름을 추출하는 방법은 무엇입니까?
RT @ user1 : 누가 @thing이고 @ user2입니까?
는 난 단지 사용자 1, 일 및 사용자 2을 갖고 싶어.
3 가지 이름을 추출하는 데 사용할 수있는 정규식은 무엇입니까?
PS : 사용자 이름은 문자, 숫자 및 밑줄 만 포함해야합니다.
다음 트윗 예는 다음과 같습니다.RegExp : 트윗 (twitter.com)에서 사용자 이름을 추출하는 방법은 무엇입니까?
RT @ user1 : 누가 @thing이고 @ user2입니까?
는 난 단지 사용자 1, 일 및 사용자 2을 갖고 싶어.
3 가지 이름을 추출하는 데 사용할 수있는 정규식은 무엇입니까?
PS : 사용자 이름은 문자, 숫자 및 밑줄 만 포함해야합니다.
테스트 :
/@([a-z0-9_]+)/i
루비 (IRB) 중
: 파이썬
>> "RT @user1: who are @thing and @user2?".scan(/@([a-z0-9_]+)/i)
=> [["user1"], ["thing"], ["user2"]]
: PHP에서
>>> import re
>>> re.findall("@([a-z0-9_]+)", "RT @user1: who are @thing and @user2?", re.I)
['user1', 'thing', 'user2']
:
01,231,582,193 426,913,이 그렇게한다 (편의상 I라는 사용 캡처).?
+ @ (? [A-ZA-Z0-9 _] +)? [^ @] + @ ([^ \ S] +)^@] + @ ([A-ZA-Z0-9 _] +)
PHP는 표현식을 사용할 때 오류 메시지를 표시합니다. "구분 기호 누락"과 같은 것입니다. – caw
이 정규식 반복자 (findall은) 시도 :?
(@[\w-]+)
작별
간단 ... 좋은! scan (ruby)와 결합하여 배열을 찾습니다. text.scan (/ @ [\ w -] + /) – Danny
/(?<!\w)@(\w+)/
위의 시나리오에는 다음과 같은 시나리오가 있습니다. 이 글의 do not :
고마워요. 아무도 이메일 주소 문제를 고려하지 않습니다. – innonate
좋은 생각이 트위터 텍스트 라이브러리 [1] 프로젝트에서이 텍스트의 문제를 해결하기 위해 포함입니다.
twttr.txt.extractMentions("a very generic twitt with some @mention");
당신은 [A-z0-9_], 즉 @ ([A-ZA-Z0-9 _] +)의 주위에 –
감사를 캡처 그룹을 추가해야합니다, 잘 작동합니다! 마지막 질문 하나 : "@"앞에 공백이 있어야하거나 시작 부분에 있어야하는 경우 다음 표현식을 사용할 수 있습니까? "/ (| ^) @ ([a-z0-9 _] +)/i" – caw
lookbehind 사용 - http://www.regular-expressions.info/lookaround.html – user4812