현재이 정규식을 가지고 있습니다 : this\.(.*)?\s[=,]\s
, 그러나 나는 고칠 수없는 피클을 발견했습니다.욕심 많고 욕심이없는 정규식
나는 작동하는 다음 Regex를 시도했지만, 원하지 않는 공간도 캡처합니다 : this\.(.*)?(?<=\s)=|(?<!\s),
. 내가하려는 것은 식별자 이름을 일치시키는 것이다. 예를 들어 내가 원하는 결과는 다음과 같습니다.
this.""W = blah;
이는 ""W
과 일치합니다. 위의 두 번째 정규 표현식은 거의 완벽하게 처리하지만 첫 번째 그룹의 =
앞에있는 공간도 캡처합니다. 누군가가 올바른 방향으로 나를 고칠 수 있습니까?
편집 : this. "$ = blah;
EDIT2을 : 간단하게 와일드 카드 그룹에 [^\s]
를 사용하지 않는 이유는 가끔 다음과 같은 라인을 얻을 수 있다는 것입니다 지금은 또 다른 문제가있다. 일치하지 않는 라인은 param1.readBytes(this.=!3,0,param1.readInt());
입니다. 일치하는 =!3
대신 일치하는 =!3,0
. 이 문제를 해결할 수있는 방법이 있습니까? 다시 과 같은 이름이있을 수 있기 때문에 다시 [^,]
을 사용할 수 없습니다. ,3$
과 일치해야합니다.
어떤 언어로 프로그램을 작성하고 있습니까? –
그래서 쉼표가 this.identifier에 속하는지 또는 함수 인수에 대한 분리 자로 사용되는지 어떻게 알 수 있습니까? –
Regex에서 거꾸로 읽는 방법이 있습니까? 예를 들어,';'에서 시작하여 두 개의','를 통과 할 때까지 작업 한 다음'this '를 찾을 때까지 캡처를 시작하십시오. 아니면 그게 가능하지 않습니다 ... – jduncanator