如果字符串完全符合定义,则匹配正则表达式

Posted

技术标签:

【中文标题】如果字符串完全符合定义,则匹配正则表达式【英文标题】:Regex to match if string is exactly as defined 【发布时间】:2021-10-10 01:32:16 【问题描述】:

如何检查字符串的格式是否正确。我希望字符串仅在完全匹配时进行比较和传递。以下是正确的格式:

0.#

0.##

0.###

0.####

0.#####

点 (.) 后面的井号 (#) 最多可以有 10 个字符,但它只能有 0。# 不允许有其他字符。

有人可以指导我如何验证这种类型的字符串吗?

【问题讨论】:

当您需要完全匹配时,使用^$ 分别指定字符串的预期开头和结尾 ^0.\d1,10$ ? 下面的这个 URL 将帮助您理解 Regex。 freecodecamp.org/news/… 【参考方案1】:

Im 正则表达式,大括号 (^) 表示行首,($) 表示行尾(或换行之前)。

一个完全匹配的正则表达式就是你想要的用 ^ 和 $ 括起来的东西。但是您必须确保引用特殊的正则表达式字符。例如正则表达式

^Hello World$

将与字符串“Hello World”完全匹配,仅此而已。

您也可以直接使用数字。您需要转义点“。”作为正则表达式中的点表示除换行符以外的任何字符。您可以通过添加反斜杠来转义字符。

接下来您应该了解量词。通常是

-> 0 or many
-> 1 or many

n -> 正好 n 次 n, -> 至少 n 次 n,m -> n 到 m 次

所以你可以写:

^0\.#1,10$

如果在 C# 中使用带引号 (") 的普通字符串,则必须使用两个反斜杠

^0\\.#1,10$

【讨论】:

以上是关于如果字符串完全符合定义,则匹配正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

re模块 - 正则表达式

如果模式以 ; 结尾,则 Java 正则表达式匹配字符串或者啥都没有[重复]

shell中的正则表达式

LinuxShell——正则表达式

4-4 linux的grep搜索命令

正则表达式