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

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

0.#

0.##

0.###

0.####

0.#####

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

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

【问题讨论】:

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

标签: c# regex


【解决方案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}$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多