Java Mongo正则表达式,用于在字符串类型的列中搜索固定整数?
我有一个Mongo DB列,其中包含以字符串形式存储的排序为“1001100”和“1001”的值。在通过java类搜索“100”时,我使用了Java Mongo正则表达式,用于在字符串类型的列中搜索固定整数?,java,regex,mongodb,Java,Regex,Mongodb,我有一个Mongo DB列,其中包含以字符串形式存储的排序为“1001100”和“1001”的值。在通过java类搜索“100”时,我使用了 query.put(dbColumn, java.util.regex.Pattern.compile(object)); 其中object是100。此查询在搜索100时生成两个值,1001包含100。是否有任何方法可以使用正则表达式获取仅包含100的值作为其字符串的一部分(即结果应仅为“1001100”)?我理解您的意思是,Mongo DB列可以包含多
query.put(dbColumn, java.util.regex.Pattern.compile(object));
其中object是100。此查询在搜索100时生成两个值,1001包含100。是否有任何方法可以使用正则表达式获取仅包含100的值作为其字符串的一部分(即结果应仅为“1001100”)?我理解您的意思是,Mongo DB列可以包含多个逗号分隔的值。例如,字符串“1001100”表示一组值1001和100。您希望在列中搜索特定的值,例如100,但只有完整的值而不是部分值应计为匹配项 如果我理解正确,那么在正则表达式中,您需要声明正在搜索的值是完整值,而不是部分值。可以通过在值的开始和结束处添加单词边界来执行此操作:
\b100\b
这将导致搜索只匹配完整的值
之所以这样做,是因为
\b
运算符与单词边界匹配。单词边界是输入中的一个位置,边界的一侧有单词元素,另一侧有非单词元素。因此,\b100\b
只有在100
两边都有非单词元素时才会匹配–在您的情况下,逗号或字段的开头或结尾。我不确定是否正确理解了您的意思。我假设您希望在包含1001001100和100的字符串中匹配100,并且仅匹配100,对吗?您是否尝试匹配整个字符串而不仅仅是子集?如果您能提供更多预期输入和输出的示例,通常会有所帮助。