> On Aug 14, 2018, at 3:15 PM, Adam Weinberger <ad...@adamw.org> wrote: > > On Tue, Aug 14, 2018 at 1:13 PM Adam Weinberger <ad...@adamw.org> wrote: >> >> On Tue, Aug 14, 2018 at 11:54 AM Dan Langille <d...@langille.org> wrote: >>> >>> I am in the process of adding FreshPorts support for CONFLICTS[1]. >>> >>> I reference www/p5-CGI only because it had a recent commit and it contains >>> a CONFLICTS directive. >>> >>> At https://dev.freshports.org/www/p5-CGI/ you can see: >>> >>> CONFLICTS: p5-CGI.pm-[1-3]* >>> >>> My goal is to allow a link to the search page or to the page for that port. >>> >>> The CONFLICTS field is a 'A list of package name patterns'[2] >>> >>> I interpret this to mean the values returned by make -V PKGNAME and the >>> documentation[3] indicates this is correct. >>> >>> Thus, the CONFLICTS matches https://dev.freshports.org/www/p5-CGI.pm [4] >>> >>> To extract the PKGNAME values from the CONFLICTS I will need to remove >>> everything after the trailing dash. >>> >>> Can someone do me up a regex for that please? regex is a weak point for me. >>> Or point me into the Mk infrastructure to locate an existing solution. >> >> Hi Dan, >> >> I suspect that the best you can get is to make some assumptions about >> what versions look like. This will catch most, but not all: >> >> /^(.*?)-[-_\.,0-9ab]+$/ > > On second thought, 'p' should be in there too. [-_\.,0-9abp].
I think we are trying to match the regex instead of noticing a regex and removing it. Am I doing it wrong? $ cat ~/tmp/pkg-name.php <?php $CONFLICTS = "p5-CGI.pm-[1-3]*"; #$pkgname = preg_match("/(.*)[-_\.,0-9,abp]*/", $CONFLICTS, $matches); $pkgname = preg_match("/(.*)-[\[.*\]+]/", $CONFLICTS, $matches); print_r($matches); $ php ~/tmp/pkg-name.php Array ( [0] => p5-CGI.pm-[ [1] => p5-CGI.pm ) It's close, but not quite. Thank you. -- Dan Langille - BSDCan / PGCon d...@langille.org
signature.asc
Description: Message signed with OpenPGP