2012-03-27 3 views
0

(BBEdit에서에서) 그렙를 사용하여 ISBN이있는 대시를 삽입 내가 유효한 ISBN이 항상

isbn = {<ISBN>} 

하지만 의 맥락에 표시되는 파일이 종종 일반적으로 그 포맷에 사용되는 대시이 부족하다. 이 대시를 BBEdit에서 grep을 사용하여 삽입하고 싶습니다. 예를 들어 나는

isbn = {0226104036} 

isbn = {0-226-10403-6} 

로하지만 난 '돈 ISBN 인코딩 지식과 GREP 기술이 필요 숫자의 문자열을 깰 필요가 그렇게하기 위해 대체하고 싶습니다 꽤있다.

나는

isbn = {([0-5]|7|60[0-9]|61[0-7]|8[0-9]|9[1-4]|9[5-8][0-9]|992[7-9]|99[3-8][0-9]|9990[1-9]|999[1-5][1-9]|9996[1-7])([0-9]+)([0-9]|X)} 

검색으로까지 얻을 위의 예에서 전용으로 지금까지 저를 얻는다

isbn = {\1-\2-\3} 

로 대체하지만 지금까지

isbn = {0-22610403-6} 
등의

심지어 일부 경우에는 첫 번째 대시를 잘못된 위치에 넣을 수도 있습니다.

ISBN이 모두 ISBN-10이라고 가정 할 수 있습니다. 또한 내가 BBEdit에서 이것을 수행하고 있음을 주목하십시오.이 BBEdit에는 약간 grep syntax quirks이 있습니다. 여기서 찾은 related solutions은 BBEdit에서 실패하거나이 특정 시나리오에 적용 할 수 없습니다.

+0

현재 정규 표현식을 사용하면 어떻게됩니까? 성공/실패한 결과의 몇 가지 예를 들려 줄 수 있습니까? – octern

+0

@octern : 항상 작동하지만 (1) 첫 번째 패턴 ("그룹")을 올바르게 구문 분석하지 못합니다 (즉, ISBN-10 스펙에 대한 단순한 해석이 첫 번째 패턴의 일부 숫자를 먹을 수 있습니다. (2) 두 번째 패턴을 두 개 ("발행자"와 "제목")로 분할해야합니다. – orome

답변

0

내가 본 바로는 {와}는 정규 표현식의 특수 문자이므로, 이스케이프 처리해야합니다 (문자 앞에 백 슬래시 넣기). 검색에있는 텍스트에만 적용되며 바꾸기에는 적용되지 않습니다. 이것은 문제의 유일한 원인은 아니지만 아마도 필요할 것입니다.

또한 "ISBN 정규식"에 대한 웹 검색을 시도 했습니까? 이와 같은 일반적인 패턴의 경우 일반적으로 알려진 이미 검증 된 솔루션이 있습니다. Here's one that might help. 나는 그것을 스스로 점검 할 지식이 없다. 그러나 이것이 효과가 없다면 거기에 다른 제안 된 해결책이 많이있다.

+0

위의 패턴은 BBEdit에서 작동합니다. 나는 당신이 링크 한 리소스에 대해 알고있다. (내가 언급 한 질문에서 링크되어있다.) BBEdit에서 작업하지 않는다고 말하는데, 내가 필요로하는 것보다 더 복잡하고 어떻게 적응해야할지 모르겠다. 다른 컨텍스트, 예를 들어 10 또는 13 개의 ISBN과 특정 양식의 접두사를 가정합니다. – orome

+0

그렇다면 독해력에 완전히 실패했습니다. 미안해 : P – octern