Re: Regex replace help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 04/12/2011 00:07, Richard Shaw a écrit :
> I'm writing my own cmake module for finding TinyXML and I'm trying to
> extract the version from the header.
>
> For some reason it's matching the whole file no matter what I do. I've
> looked through several of the cmake modules in
> /usr/share/cmake/Modules and don't see what I'm doing that's so
> different.
>
> The relevant lines in /usr/include/tinyxml.h are:
>
> const int TIXML_MAJOR_VERSION = 2;
> const int TIXML_MINOR_VERSION = 6;
> const int TIXML_PATCH_VERSION = 1;
>
> To speed up the testing I'm trying to come up with a sed equivalent to
> make sure it's returning the version numbers properly.
>
> Here's what I have:
> $ echo "const int TIXML_MAJOR_VERSION = 2;" | sed 's/const int
> TIXML_MAJOR_VERSION = \([0-9]+\).*/\1/'
> const int TIXML_MAJOR_VERSION = 2;
>
> The "echo" is one of the lines I'm trying to match while only
> returning the version number. For some reason I'm getting the whole
> line back...
>
> Can anyone give me a hint before I pull all my hair out?
>
> Thanks,
> Richard

I guess you're using cmake string REGEX MATCH operation ? If that's the
case, you can't.
Here's a snippet that might help you:

cmake_minimum_required(VERSION 2.8)
project(test NONE)

set(INPUT "const int TIXML_MAJOR_VERSION = 89")
string(REGEX MATCH "const int TIXML_MAJOR_VERSION = [0-9]+" TMP ${INPUT})
# CMake regex doesn't have non-greedy quantifiers
# alternative  expression: "[^0-9]*([0-9]+).*"
string(REGEX REPLACE ".* ([0-9]+).*" "\\1" TIXML_MAJOR_VERSION "${TMP}")
message(WARNING "TMP: ${TMP} -- MAJOR_VERSION: ${TIXML_MAJOR_VERSION}")

best regards,
H.
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux