我创建了一个正则表达式。
([a-zA-Z<] [/ a-zA-Z0-9>。?!,; _<'\ n - ] )[| \ n] [0-9] [| \ n]
我想在字幕文件中使用它。 e.g:
65 00:04:33,417 - > 00:04:35,658但是我放弃了以前的工作,所以我可以 和你在一起。
66 00:04:35,937 - > 00:04:36,984你想念它吗?
67 00:04:41,217 - > 00:04:42,423不,我喜欢我的新工作。
当我在regex101或regexr.com上使用此正则表达式时,它可以正常工作。 但是当我在我的PHP代码中使用时,它们会有不同的结果。
$myString=file_get_contents("wwz.srt");
$formula="/([a-zA-Z<][\/a-zA-Z0-9> .?!,;_<'\n-]*)[ |\n][0-9]*[ |\n]/";
preg_match_all($formula, $myString, $matches);
副标题有一部分:
70 00:04:49,017 - &gt; 00:04:50,348看看我找到了谁!
71 00:04:49,017 - &gt; 00:04:50,348 12号火车来了!
72 00:04:50,417 - &gt; 00:04:51,782这不是赛琳萨姆,是吗?
73 00:04:52,337 - &gt; 00:04:54,578你想要更多的煎饼吗?
74 00:04:55,177 - &gt; 00:04:56,542好。
75 00:04:56,697 - &gt; 00:04:58,984去吧,去吧来吧,scootch!
76 00:04:59,057 - &gt; 00:05:00821 - 至少... - 把它移开。
77 00:05:00,897 - &gt; 00:05:02,786嘿!盘子里的盘子!
78 00:05:02,857 - &gt; 00:05:04018 - 以后! - 当我们回来时这样做!
如果我在regex101中使用此示例,这将是第一个结果:
看看我找到了谁! 71
如果我在我的php代码中使用相同的正则表达式这个例子,这将是第一个结果:
这是数字12
错误在哪里?
答案 0 :(得分:4)
当您从regex101.com复制精心制作的正则表达式以便在程序中使用它时,您应该使用代码生成器,因为它可以确保正确转义字符以便在字符串中使用。 除此之外,你必须确保选择正确的风格,因为你可能会得到一个正在使用regex101的正则表达式但不在你的程序中,因为它使用了不同的正则表达式引擎。
答案 1 :(得分:1)
另外,我认为测试php正则表达式的更有用的网站是http://www.phpliveregex.com/