java

java 정규식 문자열 추출

kimbs0301 2024. 7. 4. 14:03

java 정규식 사용해서 텍스트 파일 문자열 추출

 

정규식 패턴에 사용한 특수 문자

더보기

#{...}
"..."

텍스트 파일 내부 문자열 추출

 

 

file1.txt

더보기

User.class : ID=#{id}, EMAIL=#{email}
Account.class : AID=#{id}, EMAIL=#{email}
Member.class : MID=#{id}, EMAIL=#{email}

import java.io.FileInputStream;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex1 {

	public static void main(String[] args) throws Exception {
		String regexp = "#\\{(\\w+)\\}";
        
		Pattern pattern = Pattern.compile(regexp);
		try {
			FileInputStream fis = new FileInputStream("C:/workspace/java21/regex/file1.txt");
			Scanner s = new Scanner(fis);
			while (s.hasNext()) {
				String text = s.nextLine();
				System.out.println(text);
				Matcher matcher = pattern.matcher(text);
				while (matcher.find()) {
					System.out.println("Start index:" + matcher.start() + " End index:" + matcher.end());
					String value = matcher.group(1);
					System.out.println(value);
				}
				System.out.println();
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

file2.txt

더보기

User.class : ID=1, EMAIL="email1 44"1
Account.class : AID=2, EMAIL="email2 55"2
Member.class : MID=3, EMAIL="email3 66"3

import java.io.FileInputStream;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex2 {

	public static void main(String[] args) throws Exception {
		String regexp = "\"(.+)\"";

		Pattern pattern = Pattern.compile(regexp);
		try {
			FileInputStream fis = new FileInputStream("C:/workspace/java21/regex/file2.txt");
			Scanner s = new Scanner(fis);
			while (s.hasNext()) {
				String text = s.nextLine();
				System.out.println(text);
				Matcher matcher = pattern.matcher(text);
				while (matcher.find()) {
					System.out.println("Start index:" + matcher.start() + " End index:" + matcher.end());
					String value = matcher.group(1);
					System.out.println(value);
				}
				System.out.println();
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

file3.txt

더보기

User.class : ID="1", EMAIL="email1 44"1
Account.class : AID="2", EMAIL="email2 55"2
Member.class : MID="3", EMAIL="email3 66"3

import java.io.FileInputStream;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex3 {

	public static void main(String args[]) throws Exception {
		String regexp = "\\\"([^)\\\"(]+)\\\"";

		Pattern pattern = Pattern.compile(regexp);
		try {
			FileInputStream fis = new FileInputStream("C:/workspace/java21/regex/file3.txt");
			Scanner s = new Scanner(fis);
			while (s.hasNext()) {
				String text = s.nextLine();
				System.out.println(text);
				Matcher matcher = pattern.matcher(text);
				while (matcher.find()) {
					System.out.println("Start index:" + matcher.start() + " End index:" + matcher.end());
					String value = matcher.group(1);
					System.out.println(value);
				}
				System.out.println();
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}