문자열에서 SQL 쿼리를 추출하는 정규식이 있습니까? 나는 이 아니며은 SQL 구문의 유효성을 검사하고 SQL 명령을 추출하는 데 관심이 있습니다. 주어진 SQL 파일/문자열을 유연하게 구문 분석합니다.SQL 쿼리를 추출하는 정규 표현식
SELECT
*
FROM
test_table
WHERE
test_row = 'Testing ; semicolon';
SELECT * FROM another_test_table;
INSERT INTO
table_name
VALUES
(value1,'value which contains semicolon ;;;;',value3,...);
일부 의사 코드 예제는 다음과 같습니다 : 감안할 때
는 다음과 같은 SQL 파일/문자열 예입니다 ^(UPDATE|SELECT|INSERT INTO)(.*)(;)$
. 앞으로 모든 (가능한) 명령을 사용하여이 기능을 확장하고자합니다. 로 시작 일치
- 찾는 중 : (UPDATE | SELECT | INSERT | INTO) (공백과 줄 바꿈 포함)
- 0 개 이상의
any character
SQL 쿼리를 구분합니다;
에서 - 중지합니다.
이 정규식을 통해 가능할 것이다 때마다 다음과 같은 자바 코드를 추출 할 수있는 모든 SQL 명령 :
final String regex = "LOOKING_FOR_THIS_ONE";
final Pattern p = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = p.matcher(content);
while (matcher.find()) {
// matcher.group() now contains the full SQL command
}
사전에 감사!
인생을 힘들게 만들지 말고, 쿼리를 속성 키 (모든 키 포함)에 넣고로드 한 다음 valueSet을 반복합니다. –
가능한 해결책은 아니므로 작업해야하므로 입력 형식을 요구할 수 없습니다. 입력은 SQL 명령을 포함하는 텍스트 파일입니다. 추출/구문 분석이 필요합니다. – Velth
해당 문자열을 만든 사람이 누구나 ... 을 포함 할 가능성이 있습니까? 구조화 된 정보에 평범한 텍스트를 사용하고 개발자가 그 정보를 가지고 살도록 강요하는 것은 고의적 인 잔혹한 것처럼 보입니다. –