2016-07-12 2 views
0

본인은 다음 중 하나로, OData 필터 쿼리가 포함의 일치를 찾기 위해 노력하고 있어요 : (contains\s*\(([\w]+)\,\'([\s\w\s]+\')\))+ : 나는 정규식을 사용하고이 문자열에서 반복되는 패턴을 어떻게 일치시킬 수 있습니까?

 
Name eq 'test' and contains(Address,'fdgr345') and contains(Description,'test') 

.

하지만이 정규식은 첫 번째 일치 항목 즉 contains(Address,'fdgr345') 만 반환합니다.

contains(..., '...') 패턴의 모든 항목을 어떻게 얻을 수 있습니까?

+0

Probalbly 좋은 방법이나 기능을 사용하고 있습니다. PHP입니까? 그것은 C#입니까? –

+0

당신은 환영합니다.하지만 특히 사용하는 언어에 대해 좀 더 구체적으로 설명해야합니다. –

+0

태그를 편집했습니다. 나는 PCRE를 사용하고있다 – amitlale

답변

0

regex가 정규 표현식의 모든 인스턴스를 캡처하도록하려면 어떤 형태의 전역 플래그를 전달해야합니다.

/REGEX/flags 

또는 귀하의 경우 :

/contains\s*\(([\w]+)\,\'([\s\w\s]+\')\)/g 

장치 G- 플래그가 글로벌 의미

일반적으로이 같은 것을 볼 수 있습니다. 또한 outer() +는 다음과 같은 반복 패턴을 일치 시키려고 했으므로 제거했습니다.

TEXTnStuff contains(Address,'fdgr345')contains(Address,'abc123') MORETEXT