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

Regex 使用正则表达式查找长度为10的字符串,regex,Regex,我想使用正则表达式来查找长度正好为10个字符且以“7”开头的字符串。有人能告诉我怎么做吗?这应该行得通: ^7.{9}$ ^7.{9}$ 7与字符“7”匹配。这个匹配任何字符。{9}告诉它匹配前一个符号9次 编辑:^匹配字符串的开头,$匹配字符串的结尾。此模式应该有效:7.{9} “7”显然与数字“7”匹配。“”将匹配任何字符,“{9}”将匹配前面的字符或组(在本例中为“”)9次 花一些时间学习正则表达式是很有帮助的——你可以看看或者帮助你了解它们是如何工作的。像or这样的工具(我个人最喜欢

我想使用正则表达式来查找长度正好为10个字符且以“7”开头的字符串。有人能告诉我怎么做吗?

这应该行得通:

^7.{9}$
^7.{9}$
7与字符“7”匹配。这个匹配任何字符。{9}告诉它匹配前一个符号9次


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

此模式应该有效:
7.{9}

7
”显然与数字“
7
”匹配。“
”将匹配任何字符,“
{9}
”将匹配前面的字符或组(在本例中为“
”)9次

花一些时间学习正则表达式是很有帮助的——你可以看看或者帮助你了解它们是如何工作的。像or这样的工具(我个人最喜欢的——简单而强大)也能帮上大忙。

7.{9}
是的,可能不是你想要的,但你提供的信息正是你想要的。

从7开始-你是说从数字7开始吗

无论如何,要匹配长度正好为10个字符的字符串:

/[a-z0-9]{10}/i
^7\S{9}$
这将匹配由字母和数字组成的任何字符串。添加要匹配的其他字符很容易,但由于您没有指定


祝你好运

我怀疑
“7.{9}”
的所有这些答案都不符合你的需要。它们将匹配“7abc efghi”之类的东西,这显然是两个字符串(在我看来,基于问题的语气)。它们还将匹配“7999999999999999999999999999999”(根据问题,这显然是错误的),除非您明确说明您使用的是带有隐式起始/结束线边界的re函数

您可能需要的是一个包含可能字符的白名单,这些字符组成一个字符串,例如:

7[A-Za-z0-9]{9}
任何一侧都有(潜在的)单词边界,或者(对于没有该功能的旧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}$

如果有更多的字符,你会考虑一个“字符串”的一部分,简单地把它们添加到<代码> [AZ-Z0-9] 章节。

< P>这将匹配任何从7开始的不超过10个数字的数字。
\b7\d{0,9}\b

可能是这样的:

(^|\n)(7\S{9})\s.*

其中(^ |\n)是字符串的开头(bof或新行),(7\S{9})是我们想要的字符串,\S是任何非空白字符,\S是任何空白字符,.*表示我们不想要的任何其他字符。

如Pax所说,如果要匹配不匹配任何空白的字符串,即:

// match this:
715kdgbp94

// not this
7 539 136a
然后您可以使用这个正则表达式:

7\S{9}
还值得指出的是,这并不是正则表达式的一个很好的用途,无论您使用何种语言,都可能存在一些相当标准且更易于理解的方法。例如,在PHP中:

if (strlen($myString) == 10 && $myString[0] == "7")) {
或Javascript:

if (myString.length == 10 && substr(myString, 0, 1) == "7") {
要查找长度正好为10个字符的字符串(而不是单词),请执行以下操作:

/[a-z0-9]{10}/i
^7\S{9}$
^-字符串的开头 7-字符串必须以7开头 \S{9}-9个字符(如果希望允许字符串中包含空格,请使用{9}) $-字符串的结尾
如果这是一个家庭作业,我建议您使用它来测试正则表达式的知识。

就我而言,嵌入空格不是问题,请使用锚定来确保字符串不会太长

如“以
'7'
开头并独立存在的连续系列单词字符”


(?@Tzury:在正则表达式语言中,当然:P.说真的,如果你不做任何太花哨的事情,正则表达式在每种语言中基本上都是一样的。嗯,对我来说听起来有点像家庭作业。@test,你应该弄清楚你认为哪些字符应该组成字符串(特别是是否允许空白).目前对此有一些讨论,如果你的问题得到澄清,它将变得更加有用。这也将匹配空白,我认为OP不想这样做(尽管我知道他没有具体说明).string!=word。从什么时候开始,空格就不是字符串中的合法公民了?依我看,答案完全正确。这个问题可能更具体——我同意!@Pax:大多数人对字符串的理解与你不同。这个正则表达式将匹配10个或更多字符的字符串,也将匹配不以开头的字符串7我不知道为什么这是+8。它在很多方面都是错误的。我想你的意思是“(在本例中,“.””-你有一个逗号。最完整的答案,经过充分论证的+这对unicode字符不起作用。但这一切都很好,因为OP可能不会返回来澄清任何事情。那么它至少应该是
^7.{9}$
-我认为使用标准的单词边界序列
\b
比使用向后兼容的大单词边界序列更有用、更清晰。@nickf,在整个世界中,\b、\s甚至\d在REs中毫无意义。@recursive,“abc def”只是一个字符串,因为它周围有引号,这不是我提出的情况:引号只是用来调用文本。用空格分隔字符串与用\n分隔字符串一样有效,否则(用reductio ad absrudum)你的字符串应该是整个文件,而不是每行一个字符串。争论没有多大意义-我们只是对问题的含义有不同的想法。希望@test会澄清它。否则会有多个好答案。拖尾。*不必要是真的,但为了完整性,我把它留在了。我想习惯了。这会发现字符串t不一定是精确的10个字符长。
(?<=^7|\s)7\w{9}(?=$|\s)