我的文本中已经包含可能的值,我想在某些情况下显示正确的值。我不太擅长正则表达式,我真的不知道如何解释我的问题,所以这里有一个例子。我已经让它几乎工作了:
$string = "This [was a|is the] test!";
preg_replace('/\[(.*)\|(.*)\]/', '$1', $string);
// results in "This was a text!"
preg_replace('/\[(.*)\|(.*)\]/', '$2', $string);
// results in "This is the test!"
这可以正常工作,但是当有两个部分时,它就不再起作用了,因为它从最后一个中获取了结束括号。
$string = "This [was a|is the] so this is [bullshit|filler] text";
preg_replace('/\[(.*)\|(.*)\]/', '$1', $string);
//results in "This was a|is the] test so this is [bullshit text"
preg_replace('/\[(.*)\|(.*)\]/', '$2', $string);
//results in "This filler text"
情况 1 应该是 ( 和 | 之间的值,情况 2 应该显示 | 和 ) 之间的值。