在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??