^ \ d *(\:d +)是什么意思?还是^ \ d *(\:d +)?$

时间:2019-04-25 13:09:37

标签: regex

顾名思义,^\d*(\:d+)?$的含义是什么,.到底意味着什么^\d*(\:d+)?$.

3 个答案:

答案 0 :(得分:1)

.末尾的^\d*(:d+)?$.很可能是句子的结尾,并且很可能不是正则表达式本身的一部分。

为什么?:$是行尾的符号,因此除非您使用正则表达式匹配多行字符串(很少见,但有可能),否则.将不匹配任何内容,因为字符串末尾没有任何内容。

正则表达式是什么意思?:

  • ^字符串的开头
  • \d* 0或更多数字
  • (:d+)?出现:后跟一个或多个d的可能性(可能是拼写错误,它们又表示\ d)
  • $字符串结尾

这与模式最匹配:

  • :1,其中\d*可以有0个或更多条目
  • 12,其中::之后的内容是可选的
  • 1234567890,其中\d*可以有多个条目,而::之后的数字是可选的
  • 1:2,您至少拥有其中的全部
  • 1234567890:123,其中:的两边都有很多数字

答案 1 :(得分:0)

. Dot Matches any character except linebreaks

表单详细信息将您的正则表达式放在此处:https://regexr.com/

答案 2 :(得分:0)

对于您的问题,一个很好的解决方案是找到 regex测试器页面,例如https://regex101.com/

然后:

  • 在相应字段( REGEX EXPRESSION )中复制您的正则表达式。
  • 将鼠标悬停在正则表达式的每个部分上。
  • 您将在光标下方看到有关零件的描述。

还请参见右上角的 EXPLANATION 标题。 它包含对正则表达式的非常详细的解释。

就您的正则表达式而言:(\:d+)看起来有些奇怪,因为:

  • 冒号(:)前面不需要任何\
  • 也许正确的编辑应该是(:\d+),即在冒号之后 用一个数字序列?

如上修改的正则表达式将匹配例如源字符串,例如789:456

有关示例,请参见https://regex101.com/r/kKz9oo/1