首页 > 解决方案 > 使用正则表达式查找子字符串的长度

问题描述

我已经设法使用表达式按如下方式匹配组,

\([^\)]*\)

示例字符串是,

s11(h 1 1 c)(h 1 1 c) x="" y="" z="" phi="" theta=""

e(45,10,h 1 1 c,1,cross,max) x="" y="" z="" phi="" theta=""

使用上面的表达式,我可以匹配(h 1 1 c)(h 1 1 c)(45,10,h 1 1 c,1,cross,max)

但我想捕获起始字符串s11以及e(h 1 1 c)(h 1 1 c)(45,10,h 1 1 c,1,cross,max)

标签: c#

解决方案


询问直到第一次出现的长度与询问第一次出现的索引相同。

这里不需要正则表达式,如评论中所述,方法返回第一次出现的索引就足够了:

var lengthOfSubstring = "rxx(a 0 0 b)(a 0 0 b)".IndexOf(')'); // returns 11
if( lengthOfSubstring < 0 )
{
    // character not found within the string, so the substring doesn't exist
}

推荐阅读