2012-01-18 4 views
2

안녕하세요, 문자열에 작은 따옴표를 일치 시키려하고 있습니다. 존재하는 경우 쓰기를 사용하여 표시하고 싶습니다.정규식 문제의 작은 따옴표 ABAP

data text type string value `this is a string containing a ' single quote`. 
    find regex `(\'|%27)` in text. 
    if sy-subrc = 0. 
    write 'found'. 
    endif. 

문제는 내가 ABAP 정규식에서 역 인용 문자의 동작을 이해하지 못한다는 것입니다. 그리고 어떻게 작동하는지에 대한 설명과 함께 온라인 리소스를 찾을 수 없습니다. 매치 위의 TEXT 문자열이 작동하는지 실패하는지에 따라 사용 결과가 매우 이상합니다.

당신이 문자열 내에서 문자열 변수에 대한 검색, 예를 들어,/등의 작업을 수행 할 수 있습니다 PERL에서

:

my $tofind = "'"; //a single quote 
my $text = "this is a string containing a ' single quote"; 
if($text=~m/$tofind/){ 
print "found"; 
} 

이 방법은 ABAP에서 사용할 수 있습니다, 또는 누군가가 ABAP에서 역 따옴표를 사용하는 방법에 대해 설명 할 수있다. 전문성에 미리 감사드립니다!

+0

'\\'을 정규식에서 제거하면 어떻게됩니까? 그렇게 일관된 결과를 얻었습니다. – BenV

답변

4

당신은이 경우에는 역 인용 부호가 필요하지 않습니다, 그러나 내가 당신이 찾고있는 생각은 '이 문자열/정규식의 일부

data text type string value `this is a string containing a '' single quote`. 
    find regex `(''|%27)` in text. 
    if sy-subrc = 0. 
    write 'found'. 
    endif. 

참고 여분이다'고 보여 이스케이프 문자 정의 된 문자열과 정규 표현식 모두에서.

편집 : 문서에 관한 귀하의 의견에 따라 정규 표현식에 커서를 놓고 F1 키 (도움말)를 사용하면 정규 표현식에 대한 SAP 도움말에 액세스 할 수 있습니다. 대부분의 구문이 문서화되어있는 것처럼 보입니다. (대체로 F1을 누르고 정규식을 찾으십시오).

1

부수적으로, 단일 문자를 찾는 더 쉬운 방법이 있습니다.

SEARCH text FOR ''''. 
if sy-subrc eq 0. 
    WRITE: 'Position:' , SY-FDPOS. 
endif.