如何比较此字符串:
commodity/search/oil/branch/index
用这个:
commodity/search/*/branch/index
虽然“油”被其他词取代,但它应该返回true。
答案 0 :(得分:5)
$match = preg_match("/commodity\/search\/(.*)\/branch\/index/", "commodity/search/someotherword/branch/index");
如果找到匹配项, $match
将为true(或某些值评估为true,如1)。
注意:以上内容将匹配任何额外路径,例如commodity/search/some/other/word/branch/index
如果您只想匹配一个单词,而不是类似于路径结构的东西,那么您可以尝试这样的事情:
$match = preg_match("/commodity\/search\/[A-Za-z0-9_-]+\/branch\/index/", "commodity/search/some-OTHER_word/branch/index");
这只会匹配大写和小写的a-z字符,数字,连字符和下划线。根据需要进行调整。
答案 1 :(得分:0)
PHP有一个内置函数,名为fnmatch()。
它提供了基本通配符的使用。
stream.flatMap(new FlatMapFunction<Object, Tuple2<Object, Object>>() {
@Override
public void flatMap(Object value, Collector<Tuple2<Object, Object>> out) throws Exception {
out.collect(Tuple2.of(/*key1*/, value));
out.collect(Tuple2.of(/*key2*/, value));
out.collect(Tuple2.of(/*key3*/, value));
}
}).partitionCustom(new Partitioner<Object>() {
@Override
public int partition(Object key, int numPartitions) {
return /* desired partition */
}
}, 0);
虽然不支持非POSIX兼容系统(参见PHP手册)。