我用谷歌搜索过,发现了以下结果:
有了一些(非常基本的)正则表达式的知识,我认为这样可行:
r\.(^-?\d+)\.(^-?\d+)\.mcr
用于解析此类字符串:
但是我没有对这些进行匹配。 由于我正在学习(或试图学习)正则表达式,你能否解释为什么我的模式不匹配(而不仅仅是为我编写一个新的工作模式)?根据我的理解,它是这样的:
但我错了,显然:)。
答案 0 :(得分:4)
你非常接近。 ^
匹配字符串的开头,因此它应该只位于模式的开头(如果你想完全使用它 - 这取决于你是否也接受例如abcr.0.0.mcr
)。类似地,可以使用$
(但仅在模式的末尾)指示您将仅接受在模式匹配之后不包含任何内容的字符串(因此例如r.0.0.mcrabc
将不会被接受)。否则,我觉得它看起来不错。
答案 1 :(得分:1)
^
个字符告诉它只匹配一行的开头;因为在任何一种情况下它显然都不在一行的开头,所以它无法匹配。在这种情况下,您只需要删除^
。 (我认为你要说的是“不要让其他任何东西介于这些之间”,但这是默认值,除了在正则表达式的开头;你需要类似.*
之类的东西才能允许他们之间的其他字符。)
答案 2 :(得分:0)
由于^
不在表达式的开头,因此其含义为“not”。所以在这种情况下,这意味着那里不应该有冲刺。