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)代码>谢谢!