regex - 试图理解这个正则表达式的含义

标签 regex

尝试理解以下正则表达式的含义。

/^[0-9]{2,3}[- ]{0,1}[0-9]{3}[- ]{0,1}[0-9]{3}$/

抱歉,这不完全是一个编码问题。

最佳答案

让我们把这个正则表达式分成几个不同的部分:

  • ^:断言字符串开头的位置
  • [0-9]{2,3}:匹配 0 到 9 之间的数字,匹配 2 到 3 次
  • [- ]{0,1} 匹配零到一次的破折号(可选破折号)
  • [0-9]{3}:匹配 0 到 9 之间的数字,正好 3 次
  • [- ]{0,1} 匹配零到一次的破折号(可选破折号)
  • [0-9]{3}:匹配 0 到 9 之间的数字,正好 3 次
  • $:在字符串末尾断言位置,或者在字符串末尾的行终止符之前(如果有)

以下是一些可以通过此正则表达式的字符串:

  • 123-123-123
  • 123123123
  • 12-123-123
  • 12123123

这是学习/测试正则表达式的好资源:regex101.com

关于regex - 试图理解这个正则表达式的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56782308/

相关文章:

javascript - 定义匹配除特定字符串以外的任何内容的 JavaScript 正则表达式

javascript - 为什么匹配的子字符串在 JavaScript 中返回 "undefined"?

javascript - 我怎样才能告诉正则表达式从字面上匹配相同的字符串?

python - 如何使用正则表达式匹配文本中的顺序字符串?

javascript - 使用正则表达式在 JavaScript 中出现意外标记 ^

java - 替换单词中的重复字母,但有异常(exception)

c - 在 C 中处理 POSIX - 错误消息 : Segmentation Fault (core dumped)

php - 获取正则表达式的一部分

java - 从字符串中删除电子邮件地址

python正则表达式匹配在多行上查找多重匹配