繁体   English   中英

如何只匹配字符串中的特定数字而不匹配Java中的子字符串?

[英]how to match only the certain number in the string and not a substring in java?

我有一个看起来像这样的字符串:

String str = "19+28+1435+1940-211929*31231/3219";

我想制作一个仅与数字匹配的正则表达式: 仅19或仅28或仅1435(仅所需的数字,而不是包含该数字的数字)。 例如,我要匹配19,我不希望匹配1940或3219或211929。我尝试使用[\\\\A\\\\+\\\\-\\\\*\\\\/](d{1,3})[\\\\+\\\\-\\\\*\\\\/\\\\z]但没有给我想要的结果。 (我决定使用d {1,3},因为我要匹配的数字是1或2或3位数字)

您可以这样使用单词边界\\b

\b19\b

工作演示

因此,对于仅19或28或1435的显式语句,可以使用:

\b(19|28|1435)\b

工作演示

顺便说一句,对于您的其他陈述,我要匹配的数字是1或2或3位数字 ,那么您可以使用:

\b\d{1,3}\b

工作演示

使用类似[^0-9](19|1435|28)[^0-9]

使用第一个捕获组选择您要匹配的号码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM