请教一个正则表达式的问题

zapdos 2008-11-03 11:26:03
如何在多行模式中进行全局匹配(类似JS的g)
又或者说,多行模式中的开头和结尾应该怎么表示
又或者说,我想查找一堆文件中,不包含字符串B,的文件应该怎么做?谢谢
(只能使用正则,其它循环的都不允许)
...全文
105 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qindequan 2008-11-03
  • 打赏
  • 举报
回复
楼主的哲学学的真好!
zapdos 2008-11-03
  • 打赏
  • 举报
回复
请注意我说的是"不包含"
如果没办法确定边界,"不包含"的情况比"包含"的要复杂得多,因为"包含"之中也存在着"不包含"的情况...
麻烦SAGEZK再想一下,谢谢
tiyuzhongxin789 2008-11-03
  • 打赏
  • 举报
回复
/^()$/gm
多行模式的开头和结尾,中间写你的匹配的正则就行了~!
sagezk 2008-11-03
  • 打赏
  • 举报
回复
import java.util.regex.Pattern;

public class GMatches {

public static void main(String[] args) {
String input = "文件内容";
boolean result = Pattern.matches("(?s).*AAA.*", input);
//...
}

}
lizhi1026 2008-11-03
  • 打赏
  • 举报
回复
先遍历文件夹,读取文件啊,如果存在匹配的字符串,就把文件名打印出来。。
/^()$/gm 在()那放入你想要的匹配的字符串就行了
sagezk 2008-11-03
  • 打赏
  • 举报
回复
等下,再改一下
sagezk 2008-11-03
  • 打赏
  • 举报
回复
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GMatch {

public static void main(String[] args) {
String input = "文件内容";
Pattern p = Pattern.compile(".*AAA.*", Pattern.DOTALL); //你的正则表达式
Matcher m = p.matcher(input);
//全局匹配:使用 matches 方法,它会尝试将整个输入与模式匹配。
//如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
if (m.matches()) {
//do something
}
}

}


public static final int DOTALL
启用 dotall 模式。 在 dotall 模式中,表达式 . 可以匹配任何字符,包括行结束符。默认情况下,此表达式不匹配行结束符。
zapdos 2008-11-03
  • 打赏
  • 举报
回复
哪位高手帮帮手啊,谢谢
zapdos 2008-11-03
  • 打赏
  • 举报
回复
晕,这样说吧
我有一个文件A,里面写着
23344
123456789
33455
一个文件B,里面写着
33355
987654321
33445454
现在我要用<一个正则><一次找出>其中不包含字符串'345'的文件
只能使用Pattern.matches();
sagezk 2008-11-03
  • 打赏
  • 举报
回复
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GMatch {

public static void main(String[] args) {
String input = "文件内容";
Pattern p = Pattern.compile(".*AAA.*"); //你的正则表达式
Matcher m = p.matcher(input);
//全局匹配:使用 matches 方法,它会尝试将整个输入与模式匹配。
//如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
if (m.matches()) {
//do something
}
}

}
old33 2008-11-03
  • 打赏
  • 举报
回复
汗,最好有个例子,看不懂你的文字..

ziyi89311
大牛的博客
tinggo2f
zapdos 2008-11-03
  • 打赏
  • 举报
回复
晕,大家都回帖不看贴呢

这样说吧
我有一堆文件
我要用JAVA写个代码
在这堆文件中找出其中不包含字符串'AAA'的文件
但是除了文件搜索过程外不能用循环,只能用正则表达式

就这样
zhujiahill 2008-11-03
  • 打赏
  • 举报
回复
文件名不包含B,".*B.*",这个正则就可以完成
lizhi1026 2008-11-03
  • 打赏
  • 举报
回复
/^()$/gm
多行模式的开头和结尾,中间写你的匹配的正则就行了~!
justinavril 2008-11-03
  • 打赏
  • 举报
回复
楼主给个示例吧,原来什么样的,需要什么样的。
zapdos 2008-11-03
  • 打赏
  • 举报
回复
算了,俺自己解决...
zhujiahill 2008-11-03
  • 打赏
  • 举报
回复
因为"包含"之中也存在着"不包含"的情况??
包含了还会不包含?
我觉得上面的可以,除了包含就是不包含的。
你的意思难以理解

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧