Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 regex模式只允许在替换位置使用特殊字符_Java_Regex - Fatal编程技术网

Java regex模式只允许在替换位置使用特殊字符

Java regex模式只允许在替换位置使用特殊字符,java,regex,Java,Regex,我正在尝试建立一个正则表达式,它只允许在其他位置使用特殊字符。例如,不允许使用A:)B,但允许使用A:B A:B:C是允许的,但是A@B*(C)((D不是 唯一的要求是允许在替代位置使用特殊字符,即使允许使用后跟数字/字符的特殊字符 无论两个特殊字符是相同的还是不同的,都不能在一起,甚至应该允许两个连续的字母数字。这似乎适用于您的情况: [0-9A-Za-z]+([~`!@#$%^&*()_+\-=;':"][0-9A-Za-z]+)+ 我在以下方面测试了一些案例: 注:我不是\w和\

我正在尝试建立一个正则表达式,它只允许在其他位置使用特殊字符。例如,不允许使用
A:)B
,但允许使用
A:B

A:B:C
是允许的,但是
A@B*(C)((D
不是

唯一的要求是允许在替代位置使用特殊字符,即使允许使用后跟数字/字符的特殊字符


无论两个特殊字符是相同的还是不同的,都不能在一起,甚至应该允许两个连续的字母数字。

这似乎适用于您的情况:

[0-9A-Za-z]+([~`!@#$%^&*()_+\-=;':"][0-9A-Za-z]+)+
我在以下方面测试了一些案例:

注:我不是
\w
\w
,因为
\u
被解释为
\w
的一部分。在这种情况下,我假设
\u
将是一个特殊字符



希望这有帮助!

您可以在此处尝试一些测试此问题需要努力才能回答。您需要定义特殊字符和“普通”字符(仅大写ASCII字母?)。是否
:A)B$
被允许?等等,匹配的规则还不清楚。除了两个不同或相同的特殊字符之外,其他所有东西都被允许,请参见。它不匹配
A#B#C
,您看到的问题是什么?A#B#C这是匹配的,因为即使这两个特殊字符在一起,也不应该匹配lic static void main(字符串[]参数){String test=“A@@B”;String test1=”A@B)B“String PWD_REGEX=“[0-9A-Za-z]+([~`!@$%^&*([u+\-=;):\”][0-9A-Za-z]+“Pattern Pattern=Pattern.compile(PWD_REGEX);if(Pattern.matcher(test1.find()){System.out.println(“matches”)}”)System.out.println(“end”)}我编写了这个程序,并且syso get printed您的代码中的正则表达式有问题。在上面的代码段中,]+之间有不可打印的字符。请删除它们并从上面的答案中重新粘贴正则表达式。它可以工作!请参见此处:…删除无效行并运行它。