复杂的正则表达式与空白行

时间:2015-05-09 08:33:02

标签: regex powershell

我试图在PowerShell中解析一个正则表达式,没有任何运气。我已经创建了正则表达式并且已经测试它在RegExr上工作,尽管当我尝试在其上执行匹配查询时它没有返回任何结果。

正则表达式正在寻找下面某种模式的出现(包括价格和地址之间的两个空行。:

    $date_1 = mysqli_real_escape_string($dbCon, $_POST['date_1']);
    $date_2 = mysqli_real_escape_string($dbCon, $_POST['date_2']);

    $date_1 = date('Y-m-d',strtotime('$date_1'));
    $date_2 = date('Y-m-d',strtotime('$date_2'));

我的正则表达式:$9,999,999 26 Fake Street, Fake Island, ABC 9999

我的PowerShell代码如下:

\$[\d]{1},[\d]{3},[\d]{3}\n\n\n\d{1}.*?, ([A-Z])\w+ [[\d]{4}

这个查询是否可行,还可以在找到它时返回所有这些查询吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

(?m)s*\$\d{1},\d{3},\d{3}\s*(?:\r\n|\r|\n)+\d+.*?, ([A-Z][a-zA-Z]*)\s+\d{4}

请参阅demo

所有匹配都在$matches运算符设置的全局-match变量中返回。请在regular-expressions.info了解详情。

答案 1 :(得分:0)

要匹配新行,您需要匹配回车字符以及新行字符\r\n。因此,您只需将\n\n\n更改为\r\n\r\n\r\n

即可