.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上