2016-06-14 4 views
1

내가 MIRC의 usign 정규식에 사용자 이름의 별명을 잡으려고 노력하고있어하지만 난이 잡을 어차피 내가 사용자 이름regex mirc를 사용하여 태그를 제거하는 문자열의 이름을 얻으시겠습니까?

을 원하는 데이터이고에이 정규식 코드를 포함 :

/^\x3a(:?(\[\w+\])?(\[\s\w+\s\]?))\s?(\w+)/i 

을 여기 regexer에 : Regexer

내가 지금 어떤 몸이 상황을 잡을 수있는 아이디어가

그룹 1의 사용자 이름을 얻을시겠습니까?

if ($regex(info,$1-,/^\x3a(?::?(?:\[\w+\])?(?:\[\s\w+\s\]?)?)?\s?(\w+) (CHAT) (#\S+) \x3a([\x21])(hi|test)(|$)/i)) { 
echo * NickName: $regml(info,1) 
echo * Method: $regml(info,2) 
echo * Channel: $regml(info,3) 
echo * Symbol: $regml(info,4) 
echo * Trigger: $regml(info,5) } 

: [태그] Xs_user 채팅 #test_channel : 안녕하세요 < - 작동하지!
는 : #test_channel 채팅 마두! < 안녕하세요 -이 때문에 닉 채널의 운영자 인 경우 비교할 수에 username을만을 취할 필요

작동합니다.

+0

추가 참조 ? \ s? (\ w +)'] (https (\ [\ w \]))? : //regex101.com/r/tJ1nM8/1). 너를 좋아하니? 당신은 당신이 얻으려는 결과를 언급하지 않았습니다. 이 정규식을 사용하는 경우 사용자 이름이 그룹 4에 있습니다. –

+0

감사합니다. 그룹 1의 사용자 이름을 얻으시겠습니까? 가능합니까? –

+0

네, 답을 구현하도록하겠습니다! 사전에 감사드립니다 –

답변

1

이 더 ?은 선택 (:?(\[\w+\])?(\[\s\w+\s\]))(\[\w+\])?(\[\s\w+\s\]?) 그룹을 만들기 위해 추가

^\x3a(:?(\[\w+\])?(\[\s\w+\s\]?)?)?\s?(\w+) 
           ^^ 

regex demo를 참조하십시오. 이 정규식을 사용하는 경우 사용자 이름은 그룹 4에 있습니다.

는 그룹 1에 사용자 이름을 얻을 (을 연 후 ?:를 추가하여 당신이에 관심이없는 모든 그룹에 대한 그룹을 비 캡처 사용하려면

^\x3a(?::?(?:\[\w+\])?(?:\[\s\w+\s\]?)?)?\s?(\w+) 
     ^^ ^^   ^^ 

this regex demo