【发布时间】:2021-08-02 20:42:04
【问题描述】:
这似乎是一个简单的问题,但我认为这并不容易。
从示例字符串 AAACARACBBBBBDZAAAAEE 中,我想提取前 8 个字符 (= AAACARAC),然后从生成的 8 字符长字符串中,我想提取除前导 'A' 字符之外的所有内容 ( = CARAC)。
我尝试使用此正则表达式(?^[A]<WORD>\w{8}),但我不知道如何在捕获的名为 WORD 的组上应用另一个正则表达式?
【问题讨论】:
-
为什么不简单地尝试一下 WORD.TrimStart('A')?正则表达式是一件好事,但不是“治愈一切”的东西......
-
@horcrux 谢谢你的建议,但如果我做你的建议,结果是 CARACBBB(它附加了 BBB),我只想要 CARAC。
-
如果你想要前 8 个字符,那么只需使用字符串方法 substring。 :字符串输入=“AAACARACBBBBBDZAAAAEE”;字符串输出 = 输入。子字符串(0,8);然后应用正则表达式。
-
如果你使用 C#,你可以这样做
new string(str.Take(8).SkipWhile(c => c == 'A').ToArray()) -
@LocEngineer 显然 A 的数量很重要,因为他想匹配到原始字符串的第 8 个字符,所以你不能把所有的 As 修剪掉。