【发布时间】:2020-07-10 00:17:32
【问题描述】:
我的字段包含以下可能格式的数据(每行都有不同的可能性):
AAA - Something Here
AAA - Something Here - D
Something Here
请注意,第一组字母 (AAA) 可以有不同的长度。
我试图捕捉的是使用 PCRE 的“这里的东西”或“这里的东西 - D”(如果存在),但我无法让正则表达式在所有三种情况下都正常工作。我试过了:
- (.*) 适用于案例 1 和 2,但显然不适用于案例 3;
(?<= - )(.*) 也适用于案例 1 和 2;
(?! - )(.+)| - (.+) 适用于案例 2 和 3,但不适用于案例 1。
我觉得我快要完成了,但我似乎无法破解它。
提前感谢您的帮助。
编辑:我意识到我的要求不清楚。如果后面有“-D”(数据中的字母是任意的,但应该只是单个字符),也需要捕获。
【问题讨论】:
-
“Something Here”可以包含“-”吗?
-
@Sweeper - 是的,我意识到这是要求的一部分。基本上无论第二个连字符是否存在,它都必须捕获第一个连字符(如果存在)的所有内容。我已经编辑了我的问题。