java正则表达式,怎么匹配空白行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java正则表达式,怎么匹配空白行相关的知识,希望对你有一定的参考价值。
空白行,就是这一行没有实际显示的字符。包括空格。
该怎么匹配啊?
我的意思是,把原来的空行都删除掉。该怎么匹配??
复杂点的方法是把所有行都读入一个List<String>里,然后对每一行,equals(Pattern.compile("\\s*\n")),返回true的删除掉,剩下的行就是所需要的行了。 参考技术A 不确定有没有空格的话
把
^\s*\n
替换为
空
如果确定是单独的空行,没有空格
把
^\n
替换为
空 参考技术B
java正则表达式,可以使用/s来识别空格,使用实例如下:
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中反斜线”\”有三种含义:
- 反斜线后面可以加特定字符,组成所谓的“转义字符”。eg: \n \t
- 用于取消元字符的意义,使元字符变为普通字符。eg: “\” 代表”\”。
- 用于组成正则表达式中的元字符。
eg: “\d” 在正则表达式中代表“匹配一个数字字符”。
Pattern类与Matcher类- Pattern类与Matcher类都在java.util.regex包 中定义。
- Pattern类的对象代表正则表达式编译之后的对象;Matcher类主要用于执行验证。
- Pattern类的主要方法:
public static Pattern compile(String regex);
public?Matcher?matcher(CharSequence input)
Matcher类的主要方法:
public boolean matches();
String类对正则表达式的支持 - public boolean matches(String regex)判断字符串是否与给定的正则表达式匹配。
- public String replaceAll(String regex,String replacement) 字符串替换
- public String[] split(String regex) 字符串拆分
以上是关于java正则表达式,怎么匹配空白行的主要内容,如果未能解决你的问题,请参考以下文章