如何在多行模式中进行全局匹配(类似JS的g)
又或者说,多行模式中的开头和结尾应该怎么表示
又或者说,我想查找一堆文件中,不包含字符串B,的文件应该怎么做?谢谢
(只能使用正则,其它循环的都不允许)

解决方案 »

  1.   

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

  2.   

    汗,最好有个例子,看不懂你的文字..ziyi89311
    大牛的博客
    tinggo2f
      

  3.   

    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
    }
    }}
      

  4.   

    晕,这样说吧
    我有一个文件A,里面写着
    23344
    123456789
    33455
    一个文件B,里面写着
    33355
    987654321
    33445454
    现在我要用<一个正则><一次找出>其中不包含字符串'345'的文件
    只能使用Pattern.matches();
      

  5.   

    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 模式中,表达式 . 可以匹配任何字符,包括行结束符。默认情况下,此表达式不匹配行结束符。
      

  6.   

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

  7.   

    请注意我说的是"不包含"
    如果没办法确定边界,"不包含"的情况比"包含"的要复杂得多,因为"包含"之中也存在着"不包含"的情况...
    麻烦SAGEZK再想一下,谢谢