我需要一些帮助,我有一个替代模式:
/(?<!\S)(\b|\(|\[)(?:\d+\s*x\s*)?\d+(?:\.\d+)?\s*litres($|\s|\.|;|,|\)|\])/is
功能:
preg_replace('/(?<!\S)(\b|\(|\[)(?:\d+\s*x\s*)?\d+(?:\.\d+)?\s*litres($|\s|\.|;|,|\)|\])/is', '', $string);
替换为'' - 空字符串,在99%的情况下工作得很好,但是有一些不能正常工作。
所以即
瓶子(蓝色,10升) - 将被替换为瓶子(蓝色,而不是瓶子(蓝色)。
看起来正确的边界{在上面的示例符号}被视为要替换的字符串的一部分。有什么想法吗?
欢呼声
答案 0 :(得分:0)
似乎反向引用有效: $ {2}
所以
preg_replace('/(?<!\S)(\b|\(|\[)(?:\d+\s*x\s*)?\d+(?:\.\d+)?\s*litres($|\s|\.|;|,|\)|\])/is', '${2}', $string);
应该这样做。
你猜怎么着?