我有一个字符串列表,我想检查每个字符串是否包含某个子字符串。
问题是:应该允许占位符。
例如为:
我正在寻找
"customer-id", "customer id", "customers id"
- >我的搜索字符串如下所示:"customer{2}id"
(而{2}代表占位符字符的数量 - >介于0和2之间。)
当然这不适用于
teststring.indexof("customer{2}id")
也试过:
Dim r as new Regex("customer??id")
但这只会抛出一个嵌套的限定符,这是异常的东西。 因为我不是正则表达式的极客,所以我将不胜感激。
答案 0 :(得分:0)
如果我理解正确,你可以试试:
customer.{0,2}id
这将搜索以customer
开头,后跟0-2个字符后跟id
的字符串。
基本上customer.{0,n}id
n
来自indexof
示例:customer{n}id
。
请注意.
匹配任何字符(在某些情况下包括新行)。
答案 1 :(得分:0)
?
是正则表达式中的量词(而不是单个字符的占位符)。这意味着它量化了前面的元素。这可以是角色,角色类或团体。
正则表达式中存在4个量词。
{x,y}
其中x是要匹配的最小金额,y是要匹配的最大金额。您也可以只放置一个数字{4}
,它恰好与4次匹配。
+
表示一个或多个,与{1,}
相同
*
表示零或更多,与{0,}
相同
?
表示零或一,与{0,1}
相同
我认为你需要像
这样的东西customer.{0,2}id
.
是正则表达式中的特殊字符,可以匹配任何字符(换行符除外)
所以这个正则表达式会匹配像:
这样的字符串的CustomerID
客户编号 客户ID
客户#+ ID
customerXXid
您可以使用更明确的字符类替换.
,例如如果您只想允许空格和连字符,请创建自己的角色类并添加您想要允许的字符。
customer[ -]{0,2}id
这个正则表达式会匹配如下字符串:
的CustomerID
客户编号 客户-id
customer-id
customer-id
更多信息: