我仍然与 preg_match 模式作斗争。我将以下一组字符串存储在一个数组中。
$comics = array("ABSOLUTION RUBICON #4 (MR) $3.99","ABSOLUTION RUBICON #4 FINAL JUSTICE CVR (MR) $3.99","ABSOLUTION RUBICON #4 HAPPY KITTY PREMIUM CVR (MR) $9.99", "ABSOLUTION RUBICON #4 WRAP CVR (MR) $3.99","SONIC THE HEDGEHOG #253 REG CVR $2.99");
ABSOLUTION RUBICON #4 (MR) $3.99
ABSOLUTION RUBICON #4 FINAL JUSTICE CVR (MR) $3.99
ABSOLUTION RUBICON #4 HAPPY KITTY PREMIUM CVR (MR) $9.99
ABSOLUTION RUBICON #4 WRAP CVR (MR) $3.99
SONIC THE HEDGEHOG #253 REG CVR $2.99
我想做一个 preg_match 以便最终列表看起来像这样
ABSOLUTION RUBICON #4 (MR) $3.99
SONIC THE HEDGEHOG #253 REG CVR $2.99
cleanComics = array("ABSOLUTION RUBICON #4 (MR) $3.99","SONIC THE HEDGEHOG #253 REG CVR $2.99");
为了给它上下文,这些是漫画标题,我想消除变体封面,但每隔一段时间,出版商就会滑入 REG CVR,我需要保留这个。
这些模式保持不变。
- 漫画标题总是全部大写并位于字符串的开头,但它们将包含字母和数字的混合。
- 发行编号跟随漫画标题并以“#”符号 COMIC TITLE #000 开头
- 最后一组字符将是价格,它将始终使用“$”作为价格的开头。
- 出现在“()”中的项目并不总是存在(这些可以删除,如果它使事情变得更容易,它们不是必需的)
- 变体封面的名称会有所不同,可以包含数字和字母的混合,但字母 CVR 始终跟随变体封面的名称。
我认为问题编号的最后一位数字和 $ 符号可能是分隔符,我只是不确定如何构建匹配模式来执行此操作并排除 REG CVR 案例。
应该提到这是在 PHP 中完成的。
谢谢凯文