일부 VHDL 코드를 구문 분석하려고합니다.VHDL 문자열 리터럴 정규식
문자열 리터럴을 찾는 정규 표현식을 찾고 있습니다. 문자열 리터럴이 너무 큰 따옴표로 묶여 :
" {characters} "
문제는 현재 다음과 같은 요구 사항입니다 : 인용 마크 값은 다음 문자 값의 순서로 표현하는 경우
한 쌍의 인접한 따옴표는 문자열 리터럴 내의 해당 위치에 작성되어야합니다.
이 의미는 다음과 법적 문자열 리터럴은 다음과 같은 경우
""""
" random stuff "" random stuff "
잘 모르겠어요 :
("(("")*[^\n"]*)*")
충분히 내가 /"([^"]|"")+"/
가 대부분 일 것입니다 희망
어떻게 이스케이프 된 따옴표를 다루는 지, 합법적 인 문자열 리터럴 인 "" ""이 없으므로 이것을 가질 수 있습니다 : "" "" "" "" "? 그것은 문자열 리터럴이거나, 단지 공간에 떠있는 이중 따옴표 일뿐입니다. 모든면에서 그것을 가질 수는 없습니다. – sweaver2112
확실하지 않다면 정규 표현식을 사용해보십시오 :'find -name '* .vhdl'| 고양이 xargs | perl -ne 'print if/regex /'> yourResult.txt' 그러면''':'find -name '* .vhdl'| xargs cat | perl -ne '을 포함하는 행을 검색하는 것과 어떻게 결과가 다른지보십시오 print if/"/ '> allQuotes.txt'. 'wc -l yourResult.txt allQuotes.txt' – nodakai
호기심, sebs,이 이스케이프되지 않은 큰 따옴표도 일치시키고 싶지 않으십니까? 'dkfasdfasdfasd "kjlkdsajf? 왜 안되니? – sweaver2112