我需要在PHP中删除空白行(带空格或绝对空白)。我使用此正则表达式,但不起作用:
$str = ereg_replace('^[ \t]*$\r?\n', '', $str); $str = preg_replace('^[ \t]*$\r?\n', '', $str);
我想要一个结果:
blahblah blahblah adsa sad asdasd
将:
// New line is required to split non-blank lines preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $string);
上面的正则表达式说:
/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/ 1st Capturing group (^[\r\n]*|[\r\n]+) 1st Alternative: ^[\r\n]* ^ assert position at start of the string [\r\n]* match a single character present in the list below Quantifier: Between zero and unlimited times, as many times as possible, giving back as needed [greedy] \r matches a carriage return (ASCII 13) \n matches a fine-feed (newline) character (ASCII 10) 2nd Alternative: [\r\n]+ [\r\n]+ match a single character present in the list below Quantifier: Between one and unlimited times, as many times as possible, giving back as needed [greedy] \r matches a carriage return (ASCII 13) \n matches a fine-feed (newline) character (ASCII 10) [\s\t]* match a single character present in the list below Quantifier: Between zero and unlimited times, as many times as possible, giving back as needed [greedy] \s match any white space character [\r\n\t\f ] \tTab (ASCII 9) [\r\n]+ match a single character present in the list below Quantifier: Between one and unlimited times, as many times as possible, giving back as needed [greedy] \r matches a carriage return (ASCII 13) \n matches a fine-feed (newline) character (ASCII 10)