.net如何查找带有占位符的子字符串

.net如何查找带有占位符的子字符串,.net,regex,vb.net,string,search,.net,Regex,Vb.net,String,Search,我有一个字符串列表,我想检查每个字符串是否包含某个子字符串 问题是:应该允许有占位符 例如: 我在找 “客户id”、“客户id”、“客户id” ->我的搜索字符串如下:“customer{2}id”(而{2}代表占位符字符数->介于0和2之间) 当然,这对我来说是行不通的 teststring.indexof("customer{2}id") 还审判了: Dim r as new Regex("customer??id") 但这只会抛出一个嵌套的限定符,这是一个异常。 由于我不是正则表达式的

我有一个字符串列表,我想检查每个字符串是否包含某个子字符串

问题是:应该允许有占位符

例如: 我在找
“客户id”、“客户id”、“客户id”
->我的搜索字符串如下:
“customer{2}id”
(而{2}代表占位符字符数->介于0和2之间)

当然,这对我来说是行不通的

teststring.indexof("customer{2}id")
还审判了:

Dim r as new Regex("customer??id")
但这只会抛出一个嵌套的限定符,这是一个异常。
由于我不是正则表达式的极客,我将非常感谢您的帮助。

如果我理解正确,您可以尝试以下方法:

customer.{0,2}id
这将搜索以
customer
开头的字符串,后跟0-2个字符,后跟
id

因此基本上
customer.{0,n}id
其中
n
来自
indexof
示例:
customer{n}id


请注意,
匹配任何字符(在某些情况下包括新行)。
是正则表达式中的量词(而不是单个字符的占位符)。这意味着它量化了前面的元素。可以是角色、角色类或组

正则表达式中有4个量词

  • {x,y}
    其中x是要匹配的最小金额,y是要匹配的最大金额。您还可以只放置一个数字
    {4}
    ,该数字正好匹配4个匹配项

  • +
    表示一个或多个,与
    {1,}

  • *
    表示零或更多,与
    {0,}

  • 表示零或一,与
    {0,1}

  • 我想你需要像这样的东西

    customer.{0,2}id
    
    是正则表达式中的特殊字符,与任何字符(换行符除外)匹配

    所以这个正则表达式将匹配如下字符串:

    客户ID
    客户id
    客户id
    客户#+id
    客户XXID

    您可以用定义更明确的字符类替换
    ,例如,如果您只想允许空格和连字符,请创建自己的字符类并添加您想要允许的字符

    customer[ -]{0,2}id
    
    此正则表达式将匹配以下字符串:

    客户ID
    客户id
    客户id
    客户id
    客户id

    进一步资料:

    • 在www.regular-expressions.info上
    • 在msdn.microsoft.com上