그룹에있는 항목이 뒤에 오는 경우 부정 미리보기가 일치를 방지하지 않는 이유는 무엇입니까?

GirkovArpa

나는 다음이 RegExp: (?<= )L.*(?!MH$).

아이디어는 다음과 같습니다.

  • (?<= ) 4 개의 공백이 일치 앞에 있어야하지만 일치에 포함되지 않습니다.
  • L.*일치는 L다음 문자열로 시작 하고 나머지 문자열을 포함 해야합니다 .
  • (?!MH$) UNLESS MH 가 문자열 끝에 있습니다.

이 마지막 조건은 무시됩니다. 로 끝나는 문자열은 MH여전히 일치합니다. 왜?

const regExpStr = String.raw`(?<=    )L.*(?!MH$)`;
const regExp = new RegExp(regExpStr);
const str = '2.    L2 B4 RHODA 1 ADDN,SOMECITY,OK,74999 - 81 HILLCREST MH';
const match = str.match(regExp)?.[0];

console.log(match);

아누 바바

이 정규식을 마지막에 추가 부정적 lookbehind와 함께 사용할 수 있습니다.

(?<= {4})L.*$(?<!MH)

RegEx 데모

RegEx 세부 정보 :

  • (?<= {4}): 현재 위치 앞에 공백이 4 개있는 경우이 일치를 허용합니다.
  • L.*$: L끝까지 시작하는 문자열 일치
  • (?<!MH): MH현재 포지션 (종료) 이전에 경기 실패

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관