寻找第一个下划线然后找到第 5 个 space

Looking for the first underscore then find the 5th space after

我正在尝试创建一个过滤器,在其中查找第一次(或最后一次)出现的下划线(或者它可以是任何字符),然后从那里开始查找第 5 个字符。

我正在考虑从右字符索引或左字符索引中选择一侧开始的内容。真的想找到一个很好的解释,解释为什么你的答案是这样写的。

示例:我正在寻找 __poptarts_________。

所以我希望它从最左边的 _ 开始,然后搜索 (p) 之后的第 5 个字符。

您可以通过同时使用 SUBSTRINGCHARINDEX

来实现

SELECT SUBSTRING (string,(CHARINDEX('_',string,0)+1),5)

在你的情况下是:

 SELECT SUBSTRING ('I am looking for __poptarts_________',(CHARINDEX('_','I am looking for __poptarts_________',0)+1),5)

结果是 _popt 因为你在 'p'

之前放了两个 '_'