regex 如何检查字符串是否包含C#字符串,格式占位符

ocebsuys  于 2023-06-30  发布在  C#
关注(0)|答案(1)|浏览(143)

如何简单地检查一个字符串是否包含{x}x可以是任何数字)?
我想有一些简单的RegEx可以做到这一点。

"This string contains {0} a placeholder".HasPlaceholder == true

"This string contains no placeholder".HasPlaceholder == false
zrfyljdw

zrfyljdw1#

你可以写一个简单的扩展并使用正则表达式:

public static class StringExtensions
{
    public static bool HasPlaceholder(this string s)
    {
        return Regex.IsMatch(s, "{\\d+}");
    }
}

此正则表达式 * 仅 * 适用于您指定的占位符(仅包含数字)。
对于一个完整的占位符,你需要像"{\\d+(,-?\\d+)?(:[A-Z]\\d*)?}"这样的东西。但这仍然需要改进。请参阅"Standard Numeric Format Strings"以获取有效符号的完整列表。
你可以像这样使用这个扩展:

string s = "This string contains {0} a placeholder";
if (s.HasPlaceholder())
    Console.WriteLine("Contains placeholders");

相关问题