나는 다음과 같은 정규 표현식이 있습니다정규 표현식
((^|[^a-zA-ZäöåüßÄÖÅÜ])'+targetword+'(?![a-zA-ZäöåüßÄÖÅÜ]))(?![^<]*(?:<\/script|>))
나는 targetword
을 발견하고 그것의 링크를 만들기 위해 그것을 사용하고,하지만 단어가 포함되어 있지 않은 경우에만 다른 단어.
EDIT : 정규 표현식은 JavaScript, RegExp 객체에서 사용됩니다.
즉, 'the'
은 연결되지만 o'the'r
또는 'the'apy
은 연결되지 않습니다.
위의 식에도 링크의 선행 공백이 포함된다는 점이 문제입니다. 따라서 'the'
은 링크 텍스트에서 ' the'
이됩니다.
필자는이 사이트의 주요 공백을 찾아 제외시키는 몇 가지 해결책을 찾았지만 정규 표현식이 실제로 내 장담이 아니기 때문에 위의 표현식에 이들을 포함시키는 방법을 아직 찾지 못했습니다.
이(?:(?:^|[^a-zA-ZäöåüßÄÖÅÜ])\s*(targetword)(?![a-zA-ZäöåüßÄÖÅÜ]))(?![^<]*(?:<\/script|>))
트릭을해야한다 (일치 참고하지만, targetword
앞에 배제 공백 (들)) targetword를 교체 :
나는이 솔루션을 구현했습니다. 이 연결 기능과 결합 된이 정규식은 실제로 선행 공간을 완전히 제거했지만 링크 생성 기능에 공간을 추가하여이 문제를 해결할 수있었습니다. –"(?<=[\s",.]|^)" + targetword + "(?=[\s",.\r\n]|$)"