运行时问题 - 最多150k行文本的正则表达式URL。

时间:2017-01-10 10:37:24

标签: php regex runtime

我正在使用正则表达式首先从某个文件中提取网址。该文件最多可包含250k行文本。文件中的每一行都传递给一个名为DECLARE @ExportSQL nvarchar(max); SET @ExportSQL = 'EXEC ..xp_cmdshell ''bcp "SELECT TOP 1 FROM sys.objects " queryout "C:\DeploymentPipelines\results4.csv" -T -c -t -S DEV-BUILD01\SQLSERVER''' Exec(@ExportSQL) 的数组值。以下是比我希望的更长的时间。提取20k行的URL可能需要1分钟,而提取域可能需要两倍或3倍的时间,这对我来说没有意义,因为它将url结果作为输入,所以我希望它更快。我能做些什么来大大提高速度吗?

$column7

1 个答案:

答案 0 :(得分:1)

我认为你也可以在第一个循环中提取域名。

像这样的正则表达式:

/(?:https?\:\/\/|www)([^\/ ]+)[^(\"|\\\) ]+/i'

请参阅:https://regex101.com/r/rUGOtj/1

其中([^\/ ]+)是您所在域的匹配组。

您可以使用$ matches [$ i] [1]

访问此匹配组