使用正则表达式查找长度为10的字符串

2 regex

我想使用正则表达式来查找长度恰好为10个字符并以"7"开头的字符串.请有人能告诉我怎么样?

rec*_*ive 13

这应该工作:

^7.{9}$
Run Code Online (Sandbox Code Playgroud)

7匹配字符'7'.的.匹配任何角色.{9}告诉它与前一个符号匹配9次.

编辑:^匹配字符串的开头,$匹配字符串的结尾.

  • 此正则表达式将匹配10个或更多字符的字符串,并且还将匹配不以7开头的字符串 (4认同)
  • string!= word.什么时候空间不是合法的公民?我认为答案是完全有效的.问题可能更具体 - 我同意! (3认同)
  • 我不确定为什么这是+8.它在很多方面都是错误的. (3认同)
  • 这也将匹配空白,我不认为OP想做(虽然,我明白他没有说明). (2认同)

pax*_*blo 8

这些答案都是"7.{9}"什么?他们将匹配像"7abc efghi"这样的东西,这显然是两个字符串(在我看来,基于问题的基调).它们也会匹配"7999999999999999999999999999"(根据问题显然是错误的),除非您明确表示您正在使用具有隐式开始/结束线边界的RE功能.

您可能需要的是可能出现字符串的可能字符的白名单,例如:

7[A-Za-z0-9]{9}
Run Code Online (Sandbox Code Playgroud)

(可能)两侧的字边界,或(对于没有该功能的旧RE引擎),所有这些:

[^A-Za-z0-9]7[A-Za-z0-9]{9}[^A-Za-z0-9]
^7[A-Za-z0-9]{9}[^A-Za-z0-9]
[^A-Za-z0-9]7[A-Za-z0-9]{9}$
^7[A-Za-z0-9]{9}$
Run Code Online (Sandbox Code Playgroud)

如果有更多字符被认为是"字符串"的一部分,只需将它们添加到"[A-Za-z0-9]"部分即可.