2012-10-18 1 views
2

나는 정수와 sucessor 일치 할 수있는 방법이 있는지 알고 싶습니다 (\의 d) [: 알파 :] * \ 1 +1 [: 알파 :] * (INVALID)정규식으로 산술을 할 수 있습니까?</p> 내가 일치하고 싶습니다 <p> : "1 빅터 2 마르코니"</p> <p>하지만하지를 "1 빅터 3 마르코니

"

는 원하는 제 번호를 역 참조와 증가하는 방법이

regexp가 올바른 도구인지 모르겠습니다. 그렇지 않다면, 그것은 무엇입니까?

답변

1

정규 표현식으로는 할 수 없습니다. 아마도 후계자에 의해 제한된 수의 숫자를 대체하는 정말로 큰 정규식을 만들 수는 있지만 일반적으로는 아닙니다.

증가 할 때 항상 carry->9+1=10이 발생할 수 있습니다.

어쨌든 왜 정규식을 사용하고 싶습니까?

+0

파서를 작성하는 방법을 알지 못하고 정규 표현식을 사용한 이전 경험은 매우 긍정적이었습니다. 따라서 필자는 이것이 가능할 것이라고 생각했습니다. "하드 코드 된"정규식을 생성하는 함수를 만들려고합니다. –

+0

정규식으로는 불가능합니다. 어디에서 정규식을 사용 하시겠습니까? 프로그래밍 언어? 쉘 스크립트? – lilalinux

+0

번호가 매겨진 목록이있는 비 체계적인 파일이 있습니다. 이러한 항목은 여러 줄로 확장 될 수 있습니다. 첫 번째 시도는 숫자 사이에 무엇이든 일치시키는 것이 었습니다. 그러나 이러한 항목에는 숫자가 포함될 수 있으므로 불완전한 항목과 일치하게됩니다. 다음 아이디어는 연속 번호 사이의 항목 만 일치시키는 것입니다. 그렇게하면 번호가 포함되어 있어도 전체 항목과 일치하게됩니다. 정규식은 구조화되지 않은 텍스트로 재생할 수있는 방법이 아니라는 것을 알고 있지만이 경험적 방법 (숫자와 그 후속 모델)이 잘 작동한다고 생각합니다. 예, 프로그래밍 언어 (Ruby 1.9)를 사용하고 있습니다. –