2013-04-18 3 views
-1

과 같은 특정 기호와 일치시키는 정규 표현식 다음 문장과 일치하는 정규식이 필요합니다.문장을 %

myfunc(L"try my number 8 and value%s ",value); 
myfunc(L"but %s is not true",word); 
myfunc(L"his name is %s ",name); 

등등.

하지만 내가 좋아 %없이 문장 일치하지 않을

아래
myfunc(L"It is raining"); 

즉, 단지 문장 matched.I는 다음과 같은 패턴을 시도했지만 너무 %없이 문장을 matchs해야 %를 가진.

myfunc[(L"(A-Z)*(a-z)*(0-9)*(%)+(a-z)+(A-Z)*(a-z)*(0-9)*(,)+(A-Z)*(a-z)*(0-9))] 



myfunc[(%)+] 

myfunc[(+(%)+)+] 
+0

당신은 당신의''% '을 사용해 보셨습니까? – msvalkon

+0

your_str'에서 '%'를 사용할 수없는 이유는 무엇입니까? –

+0

코드 전체를 다루기보다는 정규 표현식으로 처리하려고합니다. – TVSuser1654136

답변

2

당신은 이것에 대한 정규 표현식이 필요하지 않습니다 ... 또는 당신이 정말로 당신이 하나를 사용할 필요가 느낀다면, 그것은 필요로하는 모든이되고, 말 그대로, "%"입니다 .

대신 다음을 시도해보십시오. DSM의 코멘트

if '%' in myString: 
    ## We have a match! 

편집 (지금 당신이 가지고 있다는 사실이 질문은 파이썬과 아무 상관이 있다고 말했다) : 당신은 실제로 모든 일을 일치시킬처럼 업데이트에서이 ("즉, FUNC를 보인다. . .. "문자열을 첫 번째 인수 인 백분율 기호 다음 정규식보십시오 : 영숫자 및 공백에 대한 첫 번째 매개 변수 문자열에있는 다른 문자를 제한 할

myfunc\(L\".*?%.*?\",[a-zA-Z]*\) 

을 또는, 당신은 시도 할 수 위의 것보다 조금 더 강력합니다.

myfunc\(L\"[a-zA-Z0-9\s]*%[a-zA-Z0-9\s]*\",[a-zA-Z]*\) 

이렇게하면 전체 문자열이 문자열 앞에 "L", 문자열에 "%", 닫는 대괄호 앞에 두 번째 알파벳 인수를 포함하여 함수 프로토 타입 모양과 일치하게됩니다.

+1

'myfunc (args go here) '줄 바꿈이 일치 요구 사항의 일부가 아니라는 것을 어떻게 알 수 있습니까? 모든 예와 OP가 시도한 정규 표현식은 그것을 포함합니다. – DSM

+0

하지만 % d의 문장과 일치합니다. 이유는 무엇입니까 – TVSuser1654136

+1

@DSM 좋은 지적 - 그 가능성을 설명하기 위해 내 대답을 업데이트했습니다. –