Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-regex-preg_replace-换行后空格!_Php_Regex_Preg Replace_Space_Line Breaks - Fatal编程技术网

php-regex-preg_replace-换行后空格!

php-regex-preg_replace-换行后空格!,php,regex,preg-replace,space,line-breaks,Php,Regex,Preg Replace,Space,Line Breaks,还在用正则表达式!我想学,但我的头还是撞到了我的键盘上!;-) 好吧,我相信这对你来说是微不足道的 假设我有这个刺,\s是空间实际所在的位置\n换行符的位置 编辑: OTHERFIELD: Other text here...`\n` DESCRIPTION: The quick brown fox jum`\s\n` `\s`ps over the lazy dog OTHERFIELD: Other text here...`\n` 仅作解释: 每一行总是以大写字

还在用正则表达式!我想学,但我的头还是撞到了我的键盘上!;-)

好吧,我相信这对你来说是微不足道的

假设我有这个刺,
\s
是空间实际所在的位置<代码>\n换行符的位置

编辑:

   OTHERFIELD: Other text here...`\n`
   DESCRIPTION: The quick brown fox jum`\s\n`
   `\s`ps over the lazy dog
   OTHERFIELD: Other text here...`\n`

仅作解释:

每一行总是以大写字母开头,后跟冒号

因此,分割每一行的唯一方法是根据它的最后一行
\n
,因此我无法删除它

然后我用这个正则表达式预拆分每个清理过的行

/$\R?[^A-Z:]*/m
这给了我一个这样的数组:

[DESCRIPTION] => The quick brown fox jumps over the lazy dog

现在,我需要做的是删除
A-Z:

我通过这个正则表达式实现的:
/\s+(?![A-Z:])/m
产生了这个结果

DESCRIPTION: The quick brown fox jum ps over the lazy dog
如您所见,它在
jum
ps

怎么会有这样的结果

DESCRIPTION: The quick brown fox jumps over the lazy dog

谢谢你给我时间

试试这个正则表达式:

/\s+\n\s+/

仅当它围绕换行符时,才会匹配空格。您可能需要调整量词以适应实际数据。

您可以编写一些实际代码吗?我不太明白你在用正则表达式做什么。我也不明白你的目标。A-Z仅为大写字母,您使用的是否定的前瞻表达式?好吧,让我先解释一下,希望这有意义!我想他可能需要使用/s修饰符(将字符串视为一行)来实现这一点。感谢Response Gumbo,我已经尝试了你的正则表达式,但不幸的是它不起作用,我已经更新了我的问题,以便更好地解释!为什么这不起作用?在将文本拆分为行之前,您需要在一开始就应用这个regexp。@Zan Lynx:s修饰符只会使
也匹配换行字符。因此,
/.*/
只匹配一行,而
/.*/s
匹配所有行。我用它来删除每行开头的空白:
$sql=preg\u replace('/\n\s+/',“\n”,$sql)谢谢!