Java中正则表达式的应用

发表于:2010-4-23 10:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
java
#
Java

  首先定义两个字符串:

  String str;

  String regex;

  其中str是要作判断的字符串;regex是一个标准的正则表达式,当然,它也是一个字符串。

  一般的,如果想判断一个字符串是否匹配一个正则表达式,可以这样做:

  str = "string";

  regex = "s.*";

  System.out.println(str.matches(regex));

  matches的返回值是一个布尔boolean值。

  还可以这样用:

  Pattern pattern = Pattern.compile(regex);

  Matcher matcher = pattern.matcher(str);

  System.out.println(matcher.matches());

  matches的返回值同样是一个布尔boolean值。

  下面的情况也许并不是你想要的结果:

  str = "string\nstring";

  regex = "s.*";

  System.out.println(str.matches(regex));

  结果是false。

  这里的点.并没有匹配行结束符\n。

  也许你希望用一个含有表示行结束符的正则表达式来做匹配,但是,你又知道字符串中有多少个行结束符以及它们的位置呢?

  其实,.的匹配规则是可以更改的:

  int flags = Pattern.DOTALL;

  Pattern pMulti = Pattern.compile(regex, flags);

  Matcher mMulti = pMulti.matcher(str);

  System.out.println(mMulti.matches());

  正如所料,结果是true。

  也可以指点过多个标志:

  flags = Pattern.DOTALL | Pattern.MULTILINE;

  各个标志之间只需要用数线|分隔即可。

  更多的知识,请参照JDK的java.util.regex.Pattern部分的说明,很详细。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号