2011-10-07 6 views
2

나는이 단어조차도 건너 뛰기 문자로 작성된 단어를 찾고 싶습니다.RegExp 단어 건너 뛰기 찾기

예를 들어 나는 또한 refrences 또는 refernces을 찾아 원하는

참조를 찾으려면,하지만

내가이 정규 표현식을 쓰기 참조

(\brefe?r?e?n?c?e?s?\b) 

그리고 일치하는 그룹의 길이에 대한 검사를 추가하려면이 그룹이 8보다 커야합니다. 정규 표현식으로 만 할 수 있습니까?

+0

항상 질문에 정규식 언어를 추가하십시오 참조하십시오. 거기 밖으로 많은 다른 정규식 맛이 있고 아마도 거기에 특정 언어로 문제에 대한 다른 해결책이 존재합니다. – stema

답변

1

정규식을 사용하는 것은 좋은 생각이 아니라고 생각합니다. 더 많은 전력 기능이 필요합니다. 예를 들어 PHP로 프로그래밍하는 경우 similar_text과 같은 함수가 필요합니다. 더 자세한 사항은 여기에 : http://www.php.net/manual/en/function.similar-text.php

1

기본적으로 당신이 (의사 코드에서) 것을 요구하고있다 :

input == "references" or (levenshtein("references", input)==1 and length(input) == (lenght("references")-1)) 

Levenshtein distance이 허용 편집 작업으로, 다른에 하나의 문자열을 변환하는 데 필요한 편집의 최소 개수로 정의된다 단일 문자의 삽입, 삭제 또는 대체입니다.

char가 건너 뛴 문자열 만 검색하려면 문자열 길이에 제약 조건을 추가해야합니다.

2

정규식은 당신이 시도하는 것처럼 비슷한 단어를 찾는 좋은 도구라고 생각하지 않습니다. "refernece"처럼 두 글자가 바뀌면 뭐하고 있니? 귀하의 정규식을 찾을 수 없습니다. 길이를 확인하는 정규식 방법을 보여하지만

, 다음 \b에 대한 첫 번째 \b에서 길이에 있는지 확인합니다이

(\b(?=.{8,}\b)refe?r?e?n?c?e?s?\b) 

(?=.{8,}\b) 같은 내다를 사용하여이 작업을 수행 할 수 8 자 이상 ({8,})

here on Regexr