On 09/10/2017 12:06 PM, William Dunlap wrote:
"(^| +)([^/ ]*/?){0,2}", with the first "*" replaced by "+" would be a bit better.

Thanks! I think I actually need the *, because theoretically the b part of the word could be empty, i.e. "a//c" would be legal and should become "c".

Duncan Murdoch


Bill Dunlap
TIBCO Software
wdunlap tibco.com <http://tibco.com>

On Mon, Oct 9, 2017 at 8:50 AM, William Dunlap <wdun...@tibco.com <mailto:wdun...@tibco.com>> wrote:

     > x <- "f 147/1315/587 2820/1320/587 3624/1321/587 1852/1322/587"
     > gsub("(^| *)([^/ ]*/?){0,2}", "\\1", x)
    [1] " 587 587 587 587"
     > y <- "aa aa/ aa/bb aa/bb/ aa/bb/cc aa/bb/cc/ aa/bb/cc/dd
    aa/bb/cc/dd/"
     > gsub("(^| *)([^/ ]*/?){0,2}", "\\1", y)
    [1] "    cc cc/ cc/dd cc/dd/"


    Bill Dunlap
    TIBCO Software
    wdunlap tibco.com <http://tibco.com>

    On Mon, Oct 9, 2017 at 8:02 AM, Duncan Murdoch
    <murdoch.dun...@gmail.com <mailto:murdoch.dun...@gmail.com>> wrote:

        I have a file containing "words" like


        a

        a/b

        a/b/c

        where there may be multiple words on a line (separated by
        spaces).  The a, b, and c strings can contain non-space,
        non-slash characters. I'd like to use gsub() to extract the c
        strings (which should be empty if there are none).

        A real example is

        "f 147/1315/587 2820/1320/587 3624/1321/587 1852/1322/587"

        which I'd like to transform to

        " 587 587 587 587"

        Another real example is

        "f 1067 28680 24462"

        which should transform to "   ".

        I've tried a few different regexprs, but am unable to find a way
        to say "transform words by deleting everything up to and
        including the 2nd slash" when there might be zero, one or two
        slashes.  Any suggestions?

        Duncan Murdoch

        ______________________________________________
        R-help@r-project.org <mailto:R-help@r-project.org> mailing list
        -- To UNSUBSCRIBE and more, see
        https://stat.ethz.ch/mailman/listinfo/r-help
        <https://stat.ethz.ch/mailman/listinfo/r-help>
        PLEASE do read the posting guide
        http://www.R-project.org/posting-guide.html
        <http://www.R-project.org/posting-guide.html>
        and provide commented, minimal, self-contained, reproducible code.




______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to