但是如果用如下代码测试则是NFApublic class Test{
public static void main(String[] args){
String message = "oneselfsufficient";
String regex = "(one|oneself)(self)?sufficient";
message = message.replaceAll(regex,"$1");
System.out.println(message);
}
}
//result:one有没比较熟悉Java正则的兄弟啊,麻烦告知下,谢谢了
public static void main(String[] args){
String message = "oneselfsufficient";
String regex = "(one|oneself)(self)?sufficient";
message = message.replaceAll(regex,"$1");
System.out.println(message);
}
}
//result:one有没比较熟悉Java正则的兄弟啊,麻烦告知下,谢谢了
解决方案 »
- Jacob 操作Word 如何获得大纲等级或文档结构
- 关于扫雷游戏
- 怎么知道firefox是否支持script(javascript,vbscript)
- 为什么同一个JAVA变量,JSP前后取的值不一致?
- InetAddress怎么实现 192.168.1.1--192.168.1.255 ?????
- 如何将gb2312字符串转成utf-8字符串?
- Iterator 抛出的异常??为什么呀
- 求救大虾:为什么ms sql的驱动不能用???——急用!!
- 急救!!!java 高手请进!
- 在JTABLE中如何实现左边几列固定不动,水平和垂直滚动条均具有.(急HELP)
- weblogic生成的java放在哪里 啊。
- 补一下基础,谁给我解释一下结果
正则只读一次,字符串多次读,吐
所以默认时l*a
会把
lbbabbba当作匹配lbbabbba,而不是lbba
public class Test{
public static void main(String[] args){
String message = "oneselfsufficient";
String regex = "one((self)?(selfsufficient)?)";
message = message.replaceAll(regex,"$1");
System.out.println(message);
}
}
//result:selfsufficient
[/Quote]
那为什么这里获得答案是选择较长的呢?
我不明白的是你怎么用这个例子看出了它是DFA而不是NFA呢?