正则表达式30分钟入门系列之3

2025-05-23 11:52:01

1、\s:这个关键字代表 任意的空白符任意的哦,只要看不到的字符都是空白字符的先来看看测试的脚手架代码:Code:packa爿讥旌护ge chapter4;import java.util.Arrays;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by MyWorld on 2016/3/23. */public class RegexStudyDemo { public static void main(String[] args) { String regexStr = "Hello\\s!"; List<String> input = Arrays.asList("Hello !", "Hello !", "Hello\b!", "Hello\t!", "Hello\r!", "Hello\f!", "Hello\n!"); System.out.println(isMatch(input, regexStr)); } private static boolean isMatch(List<String> inputs, String regexStr) { boolean result = true; for (String input : inputs) { Pattern pattern = Pattern.compile(regexStr); Matcher matcher = pattern.matcher(input); if (matcher.matches()) { continue; } System.out.println(input + " is not match!"); result = false; } return result; }}

正则表达式30分钟入门系列之3

3、不少眼尖的tx已经发现了,上面的代码执行时,返回false是因为"Hello\\s!"”不能匹配"Hel造婷用痃lo !"(这个中文全角空格)不能匹配"Hello\b!"(这个例子里,貌似"Hello\b!"和"Hello!"在输出结果上看不出来。说明举的例子,不是很恰当,下面的例子会澄清下)即\s在java中不能匹配中文全角空格和英文空格童话里都是骗人的,不是说好的,可以匹配空白字符的吗。。。

正则表达式30分钟入门系列之3

5、执行下看看结果给的两个都不匹配。Output:Hello! is not match!(这个是"Hello\b!",因为list是有序的。\b粘贴过来,显示不出来了)Hello! is not match!false说明java的正则表达式中\s不能匹配 \b和中文全角空格

正则表达式30分钟入门系列之3

7、执行下看看结果Output:true说明:"Hello\\S!"可以匹配"Hello\b!"和"Hello !"(中文全角空格)

正则表达式30分钟入门系列之3

9、小结:java的正则表达式"Hello\\S!"可以匹配"Hello\b!"、"Hello汉!"和"Hello !"(中文全角空格)"Hello\\S!"和"Hello\\s!"都不匹配"Hello!"(o和!什么也没有)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢