查询以下文本里的风字
我是风儿你是沙
大风起兮云飞扬
请问怎么用正则表达式得到这样一个结果
风出现(2)次
每次出现的地方是: 1.是(风)儿 2.大(风)起
问题补充
谢谢,谢谢,真是高手~~~
[b]上次没测试好,这次可以了。试试吧![/b]
[code="java"]
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regx {
public static void getInfo(String target,String source){
Pattern p = Pattern.compile("(.{0,1})"+target+"(.{0,1})");
Matcher m = p.matcher(source);
int numb = 0 ;
StringBuffer result = new StringBuffer(target);
result.append("出现(%1$s)次\n每次出现的地方是:");
while (m.find()) {
numb = numb + 1 ;
result.append(numb).append(".").append(m.group(1));
result.append("(%2$s)");
result.append(m.group(2));
result.append("\t");
}
// System.out.printf(result.toString(),numb,target);
String finalResult = String.format(result.toString(), numb,target);
System.out.println(finalResult);
}
public static void main(String[] args) {
Regx.getInfo("风", "我是风儿你是沙\n大风起兮云飞扬");
Regx.getInfo("我", "我是风儿你是沙\n大风起兮云飞扬");
Regx.getInfo("飞", "我是风儿你是沙\n大风起兮云飞扬");
}
}
[/code]
String s = "我是风儿你是沙\n大风起兮云飞扬 ";
Pattern p = Pattern.compile("(.?)风(.?)");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(0));
}
[code="java"]
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regx {
public static void getInfo(String target,String source){
Pattern p = Pattern.compile("(.{0,1})"+target+"(.{0,1})");
Matcher m = p.matcher(source);
System.out.println(target+"共出现:( "+m.groupCount()+" ) 次");
while (m.find()) {
System.out.print("位置:");
System.out.print(m.group(1));
System.out.print("("+target+")");
System.out.println(m.group(2));
}
}
public static void main(String[] args) {
Regx.getInfo("风", "我是风儿你是沙\n大风起兮云飞扬");
Regx.getInfo("我", "我是风儿你是沙\n大风起兮云飞扬");
Regx.getInfo("扬", "我是风儿你是沙\n大风起兮云飞扬");
}
}
[/code]
[b]试试,合你的要求不?[/b]
[color=red][b]不好意思 我错了 没测试好[/b][/color]