Java正则表达式验证字符串列表的开头

时间:2018-01-29 18:50:10

标签: java regex validation

如果我有一个字符串列表说:

Cannont convert field points: Cannot resolve union : {"bytes": "+|Ð" not in ["null", {"type":"bytes","logicalType":"decimal","precision":18,"scale":6}]"

如何验证字符串并创建布尔值以确认它们都以不是单词或数字的符号开头?

字符串的结果应该是:

private List<String> domains;

而不是:

@yahoo.com
)cloud.com

我有

yahoo.com
cloud.com

这似乎不起作用。

2 个答案:

答案 0 :(得分:2)

当您使用Java 8(或更高版本)时,您可以使用以下内容:

Pattern p = Pattern.compile("^[^a-zA-Z0-9].*");
boolean all = domains.stream().allMatch(st -> p.matcher(st).matches());
然后

all包含一个布尔值,用于检查所有域是否与正则表达式匹配。

正则表达式匹配所有不以小写,大写字符或数字字符开头的内容。

答案 1 :(得分:0)

您可以将matcher.lookingAt与简单的正则表达式\\W一起使用,这意味着非单词字符(包括非字母和非数字),如下所示:

Pattern p = Pattern.compile("\\W");
boolean status = true;

for (String str : domains) {
   Matcher m = p.matcher(str);
   if ((status = m.lookingAt()) == false) {
      break;
   }
}

System.out.println( status );

lookingAt尝试将从区域开头开始的输入序列与模式匹配。

顺便说一句,你是在Java中混合使用Javascript正则表达式语法。 Java中没有/..../g