版权行的正则表达式

时间:2016-09-27 02:06:46

标签: php regex

您好我正在为我们的项目使用php_codesniffer,因为我们正在尝试找到一种方法来嗅探我们的源文件上不正确的版权。

目前我似乎无法得到我想要的结果。我们正在尝试为以下内容运行preg_match:

Copyright (C) 2016 - 2017 Dazzle Software, LLC. All rights reserved.

我试过了:

^(Copyright (C))([0-9]{4})(-[0-9]{4})? (Dazzle Software, LLC.) \(All rights  reserved.\))$

但仍然没有太多运气,因为我没有使用正则表达式,或者似乎无法找到关于正则表达式的任何好文档

2 个答案:

答案 0 :(得分:2)

你可以使用这样的东西。

^(Copyright \(C\)) (\d{3,4}) [-,\s] \d{4} \w*\s\w*[,-]\s\w*[.,]\s(all rights reserved)

这是demo:https://regex101.com/r/zF0nW9/1

答案 1 :(得分:1)

如果您想测试正则表达式模式,我建议您使用regexr等工具。

这是一个简单的正则表达式模式,它匹配您提供的每个版权段:

^(Copyright \(C\)) (\d{4}) - (\d{4}) (Dazzle Software, LLC)\. (All rights reserved)\.

每个未转义的括号都匹配:

$1 - "(Copyright \(C\))" - "Copyright (C)"
$2 - "(\d{4})" - "2016"
$3 - "(\d{4})" - "2017"
$4 - "(Dazzle Software, LLC)" - "Dazzle SOftware, LLC"
$5 - "(All rights reserved)" - "All rights reserved"

但是,如果您希望与preg_match进行比较,您可能希望获得任何字符串,而不是严格的公司名称或“保留所有权利”。

^(Copyright \(C\)) (\d{4}) - (\d{4}) (.+?)\. (.+?)\.

(.+?)将非主动地匹配任何字符串。