Regex Explanation ^.*$

36

当我使用这段代码时:

'DTH' + @fileDate + '^.*$' 

我得到了DTH201510080900.xlsx

^.*$是做什么用的?这会给我提供0900时间吗?


3
http://www.regular-expressions.info/quickstart.html - Felix Kling
2
你是在将它连接成正则表达式吗?如果是,那么字符“^”是无效的。 - user4227915
1
如果您有能力这样做,并且您觉得某个答案有价值,请标记它们为“已接受”,以结束您的问题。 - zedfoxus
这是一个更好的答案:https://dev59.com/FVnUa4cB1Zd3GeqPeNbf - Charlie Parker
2个回答

112
  • ^ 匹配字符串的开头位置
  • $ 匹配字符串的结尾位置
  • . 匹配单个字符,不包括换行符
  • * 匹配先前匹配的内容零次或多次

因此,^.*$ 的意思是 - 匹配从开头到结尾的任何出现零次或多次的字符。基本上,这意味着 - 匹配字符串的开头到结尾的所有内容。这个正则表达式模式并不是很有用。

让我们来看一个可能有点用处的正则表达式模式。假设我有两个字符串 The bat of Matt JonesMatthew's last name is Jones。模式^Matt.*Jones$将匹配 Matthew's last name is Jones。为什么?该模式表示 - 字符串应以Matt开头,以Jones结尾,并且它们之间可以有零个或多个字符(任意字符)。

随意使用在线工具如https://regex101.com/来测试正则表达式模式和字符串。


如果你只有 ^ 或者 $ 怎么办?例如,我看到这个模式 .*\\.v$,试图弄清楚它的意思(以及为什么它没有 ^)。 - Charlie Parker
@CharlieParker 看一下 https://regex101.com/r/80wecX/1。将鼠标移动到正则表达式上,它会告诉你 .*\\.v$ 匹配的内容。https://regexr.com/ 网站也是一个学习正则表达式的好地方。 - zedfoxus

30
"^.*$"

字面上的意思就是选择一切。

"^"  // anchors to the beginning of the line
".*" // zero or more of any character
"$"  // anchors to end of line

1
如果你只有 ^$ 呢?例如,我看到这个模式 .*\\.v$,并试图弄清它的含义(以及为什么它没有 ^)。 - Charlie Parker
@CharlieParker ^ 是行的开头,而 $ 是行的结尾。因此,如果您有模式:xyz$,它将匹配值:abcxyz。但是,模式:^xyz$ 将不匹配。然后,模式:^abc 也将匹配值:abcxyz,而模式:^abc$ 则不会。 - maraaaaaaaa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接