임의의 지점에 다른 StringC가 삽입 된 상태에서 StringA = StringB인지 확인하는 가장 좋은 방법은 무엇입니까? abcdef
및 abcXYZdef
주어진 예를 들어 문자열에서 삽입 찾기
abcXYZdef
이
XYZ
와
abcdef
이, 다른 한편으로 위치 4.
에 삽입 abcdef
및 abRSTcdXYZef
주어진 것을 알게 싶어, 내가 찾으려는 그 첫 번째 문자열 을 한 번만 삽입하면 두 번째로 바뀔 수 없습니다.
나는 StringA 문자를 양쪽 끝에서 문자로 갈 수 있고 StringB 전체를 덮고 있는지 확인할 수 있지만 쓸데는 지루할 것이다. 파이썬에서이 작업을 수행하는 것이 다소 느리고 (필자가 작업하고있는) 파이썬에서는 특별한 C- 확장을 작성하지 않을 것입니다.
나를 위해이 작업을 수행 할 수있는 Regex 또는 다른 표준 문자열 조작 기능으로 수행 할 수있는 똑똑한 작업이 있습니까?
편집 : 명확히하기 위해 StringC는 완전히 알려져 있지 않습니다. 유효한 StringC조차 없을 수도 있습니다. 그렇다면 그 사실을 알고 싶을 것입니다.
그것은 아마도 도움이 될
difflib
입니다 짧고 이해하기 쉬운 문자열. –정말 쓸데 지칠 것이라고 생각합니까? 파이썬에는 부분 문자열's1 [: n] == s2 [: n]'을 검사하기위한 좋은 부분이 있습니다.물론 굉장히 효율적은 아니지만 코드를 작성하는 데 오래 걸리지 않을 것이라고 생각합니다. – phimuemue
왜 문자 단위 해결책을 부인할 지 모르겠습니다. 그것은 몇 줄의 코드가 될 것 같지 않으며 순수한 파이썬만큼 빠를 것입니다. –