正则表达式随笔

刷题过程中遇到的这类问题--字符串匹配问题,解决起来简单多了。总结的不多,以后补充吧。知识面太窄了。

题目:读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。

例如:输入  4

Aab

a2B

ab

ABB

a[a2b]b

输出:

1 Aab

2 a2B

4 ABB

代码:

import java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Main {

public static void main(String[] args) {

Scanner sc= new Scanner(System.in);

while(sc.hasNext()){

int n = sc.nextInt();//获取输入字符串的个数

String arr[] = new String[n];//创建数组

for(int i =0;i

Pattern p = Pattern.compile(sc.next(),Pattern.CASE_INSENSITIVE);//正则表达式,第一个参数设置匹配的格式,第二个参数为不区分大小写。返回给一个Pattern对象P;

for(int i=0;i

Matcher m = p.match(arr[i]);//将数组中的内容与正则表达式进行匹配

while(m.matchers()){

System.out.println((i+1)+" "+arr[i]);//将满足条件的行 以及字符串输出

}

}

正则表达式内容补充:http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html

我也是看了他的详细讲解才懂了~写的很详细

你可能感兴趣的:(正则表达式随笔)