如何使用正则表达式忽略文本中的空格和回车

时间:2010-08-26 16:44:48

标签: php expression pcre

我对stackoverflow很新,所以我不知道之前是否曾经问过这个问题,但我似乎无法找到任何暗示答案的过去的问题。任何帮助都非常感谢并提前感谢。

我有这样的文字:

{
   1282837200, -- [1]
   "Type", -- [2]
   "Name", -- [3]
   "Reason", -- [4]
   Amount, -- [5]
  }, -- [1]
  {
   1282838220, -- [1]
   "Type", -- [2]
   "Name", -- [3]
   "Reason", -- [4]
   Amount, -- [5]
  }, -- [2]

我需要为其创建正则表达式并提取必要的数据。我理解如何使用PHP中的正则表达式从源文件中提取数据,使用没有“空格”或回车符的源文本。

但我需要帮助创建一个包含此源中包含的空白等的表达式。

2 个答案:

答案 0 :(得分:0)

\s是空格的符号,可能包含也可能不包含换行符,无论如何都有[\r\n],忽略这些,就是这样。你也可以告诉你到底想做什么,甚至发布你到目前为止的正则表达式,这样如果你愿意,我可以帮助你。

编辑:我只是猜测,你想要的正则表达式可能就是这样:

/\s*{[\s\n\r]*^\s*(\d+).*[\s\n\r]*^\s*"([^"]+)".*[\s\n\r]*^\s*"([^"]+)".*[\s\n\r]*^\s*"([^"]+)".*[\s\n\r]*^\s*(\w+).*[\s\n\r]*^\s*},.*[\s\n\r]*^/m

这匹配一个块并忽略了破解者中的数字。 /m切换触发多行模式。

答案 1 :(得分:0)

如果您只想删除所有空格,请尝试以下操作: $string = preg_replace('/\s+/s', '', $string);

\s+匹配一个或多个空格,制表符和换行符。 s中的/s告诉正则表达式将字符串视为一个整体,而不是一次查看一行。