我正在使用 PCRE 正则表达式,我想捕获标签 ?31 和下一个 ?xx 标签之间的字符串,但下一个 ?xx 标签可以是可选标签
有没有办法让正则表达式完全按照我想要的方式做?
谢谢
正则表达式 | 输入 | 被捕获的团体 | 状态 |
---|---|---|---|
?31(.*)(?:?\d{2}) | xxx?31测试1?32测试2 | 测试1 | 好的 |
?31(.*)(?:?\d{2}) | xxx?31测试1测试2 | 不适用 | 不行,应该是“测试1 测试2” |
?31(.*)(?:?\d{2})? | xxx?31测试1?32测试2 | 测试1?32测试2 | 不行,因为 ?32 是一起捕获的 |
?31(.*)(?:?\d{2})? | xxx?31测试1测试2 | 测试1 测试2 | 好的 |
?31(.*?)(?:?\d{2})? | xxx?31测试1?32测试2 | 不适用 | 不行,应该是“testing1” |
?31(.*?)(?:?\d{2})? | xxx?31测试1测试2 | 不适用 | 不行,应该是“测试1 测试2” |
尝试使用下面的正则表达式:
^.*\?31([^?]+)(\?.*)?$