사용자가 문자열을 제공하고 미리 정의 된 문자열 목록을 통해 해당 문자열을 검색하려고합니다. 트릭은 사용자의 문자열이 무엇이든 할 수 있고 작동하지 않습니다 [*.?^등 그래서 뭔가 임의의 (사용자 제공) 문자열과 일치하는 정규 표현식
"first half of my regex" + `USER_STRING` + "second half of my regex"
처럼 같은 정규식 문자를 포함 할 수 있다는 것이다. 확실한 해결 방법은
USER_STRING
의 모든 특수 문자를 이스케이프 처리 된 대응 문자로 이스케이프 처리하는 것이지만 더 좋은 방법이 될 수 있습니다.
추신 : 문자열의 왼쪽과 오른쪽에 패턴을 일치시켜야하기 때문에 간단한 문자열 검색이 수행되지 않습니다.
더 좋은 방법은 정규식 문자를 사용자 문자열로 만드는 것 외에 다른 것이 있습니까? –
두 부분으로 나누어 주시겠습니까? 먼저 정규 표현식을 찾은 다음 일치하는 문자열을 검색합니다. – freejosh
@TimPietzcker : 왜 그 대답이'-'를 벗어나는 지 모르겠습니다. '[]'가 이스케이프되었을 때 그렇게 할 필요는 없습니다. – nhahtdh