Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我有两个字符串数据。我的要求是-如果两个字符串的对应数字完全相同,或者其中一个或两个都相同,则两个字符串应该匹配?。因此,只有当两个字符串对应的数字不同时,它们才会不同 String str1 = "??56??77??"; String str2 = "??????77??"; 我不想在while循环中进行逐位比较。是否有任何方法可以使用Java正则表达式实现它 粗略的想法是使str1像模式一样 str1 = [0-9][0-9][5?][6?][0-9][0-9][7?][7?][0-9]

我有两个字符串数据。我的要求是-如果两个字符串的对应数字完全相同,或者其中一个或两个都相同,则两个字符串应该匹配?。因此,只有当两个字符串对应的数字不同时,它们才会不同

String str1 = "??56??77??";
String str2 = "??????77??";
我不想在while循环中进行逐位比较。是否有任何方法可以使用Java正则表达式实现它

粗略的想法是使str1像模式一样

str1 = [0-9][0-9][5?][6?][0-9][0-9][7?][7?][0-9][0-9]
但是我怎样才能用5代替5呢

请帮忙

粗略的想法是使str1像模式一样

str1 = [0-9][0-9][5?][6?][0-9][0-9][7?][7?][0-9][0-9]
str1=[0-9][0-9][5?][6?][0-9][0-9][7?][7?][0-9][0-9] 但是我怎样才能用5代替5呢

是的,你可以用| like 5 |?而不是你的[5?]

因此,您的模式将变成:

str1=[0-9][0-9]5 |?6 |?[0-9][0-9]7 |?7 |?[0-9][0-9]

我还是不明白你的意思?或者[0-9]在您的示例中,如果有具体的案例,则最容易提供帮助。因为这个和你的str2=???77

如果str2真的是这样,那么正确的正则表达式应该是5、6、7、7

我不知道,因为我真的不明白你有什么意见

根据您的需要进行编辑您可以使用它:


你为什么不想用loop呢?循环很简单。您能添加一些匹配和不匹配的示例字符串吗?例如,str1=?56?77??而str2=???77??是否匹配,但str1=?56?77??而str2=?57±77??不匹配请编辑您的问题,而不是添加评论。抱歉,我没有收到您的回复。您能告诉我如何使用它吗。str1=str1。替换?,[0-9]将替换所有内容?有了[0-9]我怎么能把模式str1=[0-9][0-9][5?][6?][0-9][0-9][7?][0-9][0-9]替换成[digit?]呢?实际上我希望模式str1=[0-9?][0-9?][5?][6?][0-9?][7?][7?][0-9?][0-9?][0-9?]来匹配str2=.77??