java正则表达式,怎么匹配空白行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java正则表达式,怎么匹配空白行相关的知识,希望对你有一定的参考价值。

空白行,就是这一行没有实际显示的字符。包括空格。
该怎么匹配啊?
我的意思是,把原来的空行都删除掉。该怎么匹配??

2楼的方法会把所有的换行符都删除掉,剩下的整个文本全部都在一个行内,我想楼主应该是要保留正常的换行符的,也不符合LZ的本意。
复杂点的方法是把所有行都读入一个List<String>里,然后对每一行,equals(Pattern.compile("\\s*\n")),返回true的删除掉,剩下的行就是所需要的行了。
参考技术A 不确定有没有空格的话

^\s*\n
替换为

如果确定是单独的空行,没有空格

^\n
替换为
参考技术B

  java正则表达式,可以使用/s来识别空格,使用实例如下:

  Pattern pattern = Pattern.compile("[//s//pZs]");
        Matcher re = pattern.matcher(so);
        so=re.replaceAll("");

参考技术C Pattern.compile("^$", Pattern.MULTILINE) 参考技术D 你这个正则表达式“\\+2,”的意思是要匹配的字符串仅由“+”构成,且长度在
2
及以上。而你输入的字符串“aaa++++++++”中除了加号还有
a,而且
matches
方法是全词匹配,所以是
false。

JAVA正则表达式

正则表达式
正则表达式(regex)是使用字符串来描述、匹配一系列符合某个句法规则的字符串
用途:匹配、切割、替换、获取字符串
正则表达式由一些普通字符和一些元字符组成。
常见元字符
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \n\r\t\f]
\S 匹配任何非空白字符。等价于[^\n\r\t\f]
\w 匹配包括下划线的任何单个字符。等价于"[A-Za-z0-9]"
\W 匹配任何非单个字符。等价于“[^A-Za-z0-9
]”
. 匹配除“\r\n”之外的任何单个字符
{n} n是一个非负整数。匹配确定的n次
{n,} n是一个非负整数。至少匹配n次
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次

  • 匹配前面的子表达式零次或多次(大于等于0次)
  • ? 匹配前面的子表达式零次或一次
  • 匹配前面的子表达式一次或多次(大于等于1次)

“\”的理解
在Java中反斜线”\”有三种含义:

  1. 反斜线后面可以加特定字符,组成所谓的“转义字符”。eg: \n \t
  2. 用于取消元字符的意义,使元字符变为普通字符。eg: “\” 代表”\”。
  3. 用于组成正则表达式中的元字符。
    eg: “\d” 在正则表达式中代表“匹配一个数字字符”。
    Pattern类与Matcher类
    1. Pattern类与Matcher类都在java.util.regex包 中定义。
    2. Pattern类的对象代表正则表达式编译之后的对象;Matcher类主要用于执行验证。
    3. Pattern类的主要方法:
      public static Pattern compile(String regex);
      public?Matcher?matcher(CharSequence input)
      Matcher类的主要方法:
      public boolean matches();
      String类对正则表达式的支持
    4. public boolean matches(String regex)判断字符串是否与给定的正则表达式匹配。
      1. public String replaceAll(String regex,String replacement) 字符串替换
      2. public String[] split(String regex) 字符串拆分

以上是关于java正则表达式,怎么匹配空白行的主要内容,如果未能解决你的问题,请参考以下文章

关于JAVA正则匹配空白字符的问题(全角空格与半角空格)

正则表达式匹配任何空白字符或者匹配任何非空白

用正则表达式,清除文章中多余的换行和空白字符

JAVA正则表达式

java 正则怎么匹配符号加中文

请问JAVA中正则表达式匹配怎么实现的!