2012-08-01 6 views
0

# char로 시작하는 문자열의 모든 항목을 [a-zA-Z0-9 _] + 뒤에 붙이기로되어있는 dot net에서 regex exp 작성에 어려움을 겪고 있습니다. 문제점 : "(" 그래서이 예제 문자열에서 "#REGNR() + #ORDER"와 일치하는 결과를 얻으려고합니다 : "#ORDER" ' 이 정규식으로 이것을 달성하려고하는 m : "# ([a-zA-Z0-9 _] + (?!)))" 문제는 "# REGN"과 "#ORDER "내가 원하는 definetely 아니다한다.정규식 연습 - 특수 문자가 뒤 따르지 않는 부분 일치 문자열.

어떤 제안?

가 대단히 감사합니다,

피터

+0

'\ b'가 도움이됩니다. 그래서, 세상의 경계입니다.) 다음과 같은 것을 시도해보십시오 :'# \ b ([a-zA-Z0-9 _] +) \ b (?! \ (\))' – gaussblurinc

답변

0

제 생각에, 당신은 그 단어의 경계를 찾아야합니다.

이 경우, 원하는 단어의 경계 인 \b <을 입력하십시오. 당신의 운동에서

: #\b([a-zA-Z0-9_]+)\b(?!\(\))

그것은 당신이 필요한 모든 일치하지 말에 특수 문자 ()\b<WHOLE WORD>\b

단어 단위를 (여기 regexs 확인).

+0

고맙습니다. 정확히 내가 필요한 :-)) –

+0

@ PeterBoško 문제 없습니다. 참고하시기 바랍니다 : 솔직하게 대답하는 것이 중요합니다. 답이 도움이된다면, (정중 한 사람으로서) 답변을 투표하고 투표 아래에 녹색 막대기로 받아 들여야합니다. 친애하는! – gaussblurinc

0

아마도이 부분이 맞습니까?

(#([a-zA-Z0-9_]+))(?!\() 

이렇게하면 그룹에 해시가 포함됩니다. 그러면 다음에서 "#ORDER"와 일치합니다.

#REGNR() + #ORDER + #B() + BLAH