Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在开始、中间和结束处为特定字符匹配正则表达式_Java_Regex - Fatal编程技术网

Java 如何在开始、中间和结束处为特定字符匹配正则表达式

Java 如何在开始、中间和结束处为特定字符匹配正则表达式,java,regex,Java,Regex,我有一个字符串,如果有则无效 _ at start || _ at end || more than one consecutive _ in the middle 但是,如果在一个字符串中找到多个非连续的\uuu,则该值有效 例如 "'test_test_test" - valid "test_" - invalid "_test" - invalid "test_____test" - invalid 我正在尝试不同的模式将所有这些条件匹配为一个条件,但似乎不适用于例如(

我有一个字符串,如果有则无效

  _ at start ||
  _ at end ||
  more than one consecutive _ in the middle 
但是,如果在一个字符串中找到多个非连续的
\uuu
,则该值有效

例如

"'test_test_test" - valid 
"test_" - invalid
"_test" - invalid
"test_____test" - invalid
我正在尝试不同的模式将所有这些条件匹配为一个条件,但似乎不适用于例如
(“^[\uU]+”)或(“^[\uU]+”)或(“^[\uU]$+”


如果你能帮我解释一下正则表达式,我会非常感激

您可以使用以下代码:

Pattern p = Pattern.compile("^(_\\w*)|(\\w*_{2,}+\\w*)|(\\w*_$)");
Matcher m = p.matcher("te_st_");
System.out.println("Is string invalid: "+ m.matches());
见结果:


有关更多详细信息:

最简单的模式是
^[^.]+(?:[^^.]+)*$
,已调整。但它在测试中失败,
测试和
测试与
^[^.+(?:[^.]+)*$
不匹配!对不起,我的错。谢谢