我如何能够在两个不同的定界符之间获得一个子字符串,这两个定界符也位于给定字符串中的可变位置。
例如:
String1 = "my first example {{my first substring}}"
String2 = "my great second example which has much more words included before {{my second substring}} and after the substring"
Substring1 = "my first substring"
Substring2 = "my second substring"
如您所见,子字符串之前的分隔符是“{{”,之后的分隔符是“}}”。
我发现的关于子字符串操作的所有内容都是严格的位置设置,在这里没有帮助。
提前致谢!
这是正确的。为了解决这个问题,我们必须有一些源字符串中不存在的可打印字符(至少在最终定界符之前)。
例如,如果这样的 char 是
@
代码可能是我想我找到了解决方案:
结果:
它有效,但我不太明白它如何能够确定 tmp-string 的子字符串,因为它不在其内容中。
我假设您只需要每个字符串中的一个子字符串。这是一个强大的解决方案,它可以处理任何值,但它不能在值中处理,如果
!
在值中,也会^
被剥离!
。- 输出 -
获取子字符串有两个主要技巧。
!str:*{{!
通过第一次出现 . 删除所有内容{{
。for %%N in ...
在 in 创建一个带引号的换行符,%%N
以便!sub:{{=%%~N!
用换行符替换 all}}
。内部for /f
然后分别迭代每个字符串,do
循环只保留第一个结果。x
以防万一子字符串为空。