Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 숫자와 단어 사이에 공백을 추가하는 Java 정규식 프로그램.

<시간/>

표현식을 괄호로 구분하여 정규 표현식에서 일치 그룹을 형성할 수 있습니다. 다음 정규식에서 첫 번째 그룹은 숫자와 일치하고 두 번째 그룹은 영어 알파벳과 일치합니다 -

(\\d)([A-Za-z])

즉, 입력 문자열에서 숫자 다음에 알파벳이 오는 부분과 일치합니다.

$1 표현식은 Group1을 나타내고 $2는 Group2를 나타내므로 위의 Java 정규식을 $1 $2로 바꾸면 (String 클래스의) replace() 메서드를 사용하면 숫자 다음에 단어가 올 때 주어진 입력 문자열에서 숫자와 단어 사이에 공백이 추가됩니다.

import java.util.Scanner;
public class SampleTest {
   public static void main( String args[] ) {
      String regex = "(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])";
      //Reading input from user
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      //String result = input.replaceAll(regex, " ");
      String result = input.replaceAll( "(\\d)([A-Za-z])", "$1 $2" );
      System.out.println(result);
   }
}

출력

Enter input text:
21This 23is 56sample 99text
21 This 23 is 56 sample 99 text

마찬가지로 다음 표현식을 공백으로 바꿔야 하는 순서에 관계없이 주어진 텍스트에서 숫자와 알파벳 사이에 공백을 추가할 수 있습니다 -

(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])

import java.util.Scanner;
public class SampleTest {
   public static void main( String args[] ) {
      String regex = "(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])";
      //Reading input from user
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      //String result = input.replaceAll(regex, " ");
      String result = input.replaceAll( regex, " " );
      System.out.println(result);
   }
}

출력

Enter input text:
21This23is56sample99text
21 This 23 is 56 sample 99 text