当前位置: 首页 > 面试题库 >

Java RegEx精确匹配8位数字

邵轶
2023-03-14
问题内容

我有一个简单的RegEx,它应该查找8位数字:

String number = scanner.findInLine("\\d{8}");

但事实证明,它还匹配9位及更多数字。如何修复此RegEx以精确匹配8位数字?

例如:应匹配12345678,而不应匹配1234567和123456789。


问题答案:

试试这个:

\b 被称为单词边界,它将对您的正则表达式说数字在8之后结束

String number = scanner.findInLine("\\b\\d{8}\\b");


 类似资料:
  • 本文向大家介绍MongoDB精确数组匹配,包括了MongoDB精确数组匹配的使用技巧和注意事项,需要的朋友参考一下 对于精确的数组匹配,只需在MongoDB中使用。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 这是对MongoDB数组匹配的查询- 这将产生以下输出-

  • 我正在使用elasticsearch从json字段进行精确短语匹配。我尝试过多种语法,比如multi_match、query_string query_string我正在使用的语法; 我也尝试了过滤器而不是查询,但是过滤器在json上没有给出任何结果。我用于过滤器的语法是; 现在的问题是; 是否可以使用elasticsearch对json执行精确匹配操作?

  • 我正在尝试创建一个Lucene4.10索引。我只想在索引中保存我放入文档的确切字符串,witout标记化。 我在用StandardAnalyzer。 我试图搜索术语“燃料箱容量”@en(包括引号),所以我试图省略它们,并在术语周围添加了另外几个引号,以便让lucene理解我正在搜索整个文本。 如果我打印查询,我会得到:3:“燃料箱容量en”,但我不想拆分@符号上的文本。 我认为我的第一个问题是St

  • 有什么regex我可以用来匹配正好10位数的块吗?例如,我有以下内容: 当给定时,这与匹配,但当给定时,这也与匹配,这是我不想要的。

  • 假设我给出一个模式123*或1234*,我想匹配以该模式开头的任何10位数字。它应该正好有10个数字。 例子: 模式:123应该匹配1234567890但不匹配12345678 我试过这个正则表达式:(^(123)(\d{0,10}))(?(1)\d{10})。。很明显,它不起作用。我试着将图案和剩余的数字分成两组。它匹配捕获组后的10位数字(https://regex101.com/).如何检查

  • 我目前正在Java应用程序上使用MongoDB的驱动程序。假设我将以下两个文档存储在一个集合中: 文件A: 文件B: 现在,我想通过使用key1和key2的值从集合中检索DocumentB的精确匹配,而不返回documenta,而不是_id,因为我事先不知道它。 如果我只是使用DocumentB作为查询(没有_id),Mongo也将返回DocumentA,因为它匹配所有的键和值,不考虑Docume