1

我正在尝试编写一个匹配可变长度字符串的正则表达式,删除某些文本。以下是一些尝试实现的示例:

Equipment Changes: 2 - Mon Rose - Blinkers On;7 - Queen's Harbor - Blinkers On

会产生

2 - Mon Rose - Blinkers On;7 - Queen's Harbor - Blinkers On

上面的示例包括 2 次设备更改,但是可能有 1 到 12 次设备更改。我希望一个正则表达式可以处理所有情况。马的名字总是会随着设备类型的变化而变化(Blinkers On、Blinkers Off、Bar Shoe 等)

我可以匹配一个,但我对可变要求有困难。

我匹配一项设备更改的代码如下:

(Equipment Changes:)\s[\dA-Z]{1,2}\s-\s[A-Za-z\d]{1,18}\s-\s[A-Z]\s?[a-z]+\s[A-Za-z]+\s?[A-Za-z]

这匹配一个设备更改。我希望能够 + 或 {1,12} 使其处理多个更改。

任何帮助,将不胜感激。

谢谢

4

1 回答 1

1

如果您不想分离设备更改,这应该可行。(在冒号之前传递所有内容,然后获取字符串的其余部分。)

    .*:(.*\z)

如果您试图将它们分开,您可以使用分号进行拆分。(在冒号之前传递所有内容,然后获取由分号分隔的字符串片段,最后一个片段在字符串结束时结束。)

    .*:(.*;)*(.*)\z
于 2012-08-08T01:11:31.490 回答