Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 Mongo正则表达式,用于在字符串类型的列中搜索固定整数?_Java_Regex_Mongodb - Fatal编程技术网

Java Mongo正则表达式,用于在字符串类型的列中搜索固定整数?

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列可以包含多

我有一个Mongo DB列,其中包含以字符串形式存储的排序为“1001100”和“1001”的值。在通过java类搜索“100”时,我使用了

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,对吗?您是否尝试匹配整个字符串而不仅仅是子集?如果您能提供更多预期输入和输出的示例,通常会有所帮助。