我需要帮助为这个问题创建最好的正则表达式。
我有起始和结束分隔符的组合/组,我需要获取起始分隔符到结束分隔符之间的所有子字符串/任何单词。
假设这个分隔符表:
开始 | 结尾
猫 | 狗
苹果 | 橙
狮子 | 斑马
熊猫 | 猫
样本输入:
substring1 CAT substring2 substring3 DOG substring4 substring5 CAT substring6
APPLE substring7 substring 8 ORANGE ORANGE substring9 DOG substring10 PANDA
substring11 CAT substring12 DOG substring13 LION substring10 substring11 ZEBRA substring12
CAT substring13 substring14 APPLE substring15 substring 16 ORANGE
输出必须是:
- CAT 子字符串 2 子字符串 3 狗
- APPLE substrin7 substring8 ORANGE
- 熊猫子串 11 CAT
- LION substring10 substring 11 ZEBRA
- APPLE substring15 substring16 ORANGE
我的正则表达式:
CAT (.)*? DOG | APPLE (.)*? ORANGE | LION (.)*? ZEBRE | PANDA (.)*? CAT
我在处理多次出现其他起始分隔符的字符串时遇到问题。
举个例子:
CAT word1 word2 word3 word4 APPLE word5 word6 word7 DOG
我知道它将与此 CAT (.)* 匹配?DOG但这是错误的,因为子字符串包含起始分隔符之一。
我只需要一个正则表达式,如果子字符串不包含任何其他起始分隔符的出现,它将获取起始分隔符与其匹配的结束分隔符之间的所有单词。
有什么建议吗?谢谢