You are viewing a plain text version of this content. The canonical link for it is here.
Posted to regexp-user@jakarta.apache.org by Thomas Wiedmann <th...@gmx.de> on 2011/03/12 18:47:00 UTC
How to exclude a sequence of characters
Hello,
I'm looking for an appropriate regular expression to search a certain
pattern, but to exclude a special sequence of characters.
Example: Trying to get all matches of the pattern 'test' but excluding all
matches of the pattern '-end', i. e. if the text contains 'test-end' this
text location should not be matched.
By which regular expression can this search condition be realized?
Thomas Wiedmann
---------------------------------------------------------------------
To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: regexp-user-help@jakarta.apache.org
Re: How to exclude a sequence of characters
Posted by Thomas Wiedmann <th...@gmx.de>.
>"Jon Gorrono" <jp...@ucdavis.edu> schrieb im Newsbeitrag
>news:AANLkTik9Khsh_MqmFaBD2DB7v9L8pz=qiRr8eH93NKho@mail.gmail.com...
>'-xyz' literal does not match the '-end' literal... if you want to
>match any three-character ending you'll need something like '-...' in
>the regexp
>
>Also, I can't recall of the dash needs to be escaped outside a
>square-bracket operator pair, but it might be interpreted as a range
>operator here.
May be, but what's the solution, i. e. how must the RegExp statement be
written, that texts like "mytext-end" are not matched?
Thomas Wiedmann
---------------------------------------------------------------------
To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: regexp-user-help@jakarta.apache.org
Re: How to exclude a sequence of characters
Posted by Jon Gorrono <jp...@ucdavis.edu>.
'-xyz' literal does not match the '-end' literal... if you want to
match any three-character ending you'll need something like '-...' in
the regexp
Also, I can't recall of the dash needs to be escaped outside a
square-bracket operator pair, but it might be interpreted as a range
operator here.
On Tue, Mar 22, 2011 at 12:03 AM, Thomas Wiedmann <th...@gmx.de> wrote:
>> It sounds like you want to use a zero-width negative lookahead assertion.
>> For example:
>> test(?!-end)
>>
>> You should probably use java.util.regex.
>
> I tried the Java statements
>
> String text = "mytest-xyz";
> String pattern = ".*test(?!-end)";
> System.out.println(text.matches(pattern) ? "Ok" : "NOk");
>
> Unfortunately in this case "NOk" was returned. I thought the Java RegExp
> would support negative lookaheads; according to the javadoc it must had done
> it.
> What's the reason?
> How must the RegExp statement be written, that texts like "mytext-end" are
> not matched, because they a excluded, but a text like "mytest-xyz" is
> accepted, because it doesn't end with "-end"?
>
> Thomas Wiedmann
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: regexp-user-help@jakarta.apache.org
>
>
--
Jon Gorrono
PGP Key: 0x5434509D -
http{pgp.mit.edu:11371/pks/lookup?search=0x5434509D&op=index}
GSWoT Introducer - {GSWoT:US75 5434509D Jon P. Gorrono <jpgorrono - gswot.org>}
http{sysdev.ucdavis.edu}
---------------------------------------------------------------------
To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: regexp-user-help@jakarta.apache.org
Re: How to exclude a sequence of characters
Posted by Thomas Wiedmann <th...@gmx.de>.
> It sounds like you want to use a zero-width negative lookahead assertion.
> For example:
> test(?!-end)
>
> You should probably use java.util.regex.
I tried the Java statements
String text = "mytest-xyz";
String pattern = ".*test(?!-end)";
System.out.println(text.matches(pattern) ? "Ok" : "NOk");
Unfortunately in this case "NOk" was returned. I thought the Java RegExp
would support negative lookaheads; according to the javadoc it must had done
it.
What's the reason?
How must the RegExp statement be written, that texts like "mytext-end" are
not matched, because they a excluded, but a text like "mytest-xyz" is
accepted, because it doesn't end with "-end"?
Thomas Wiedmann
---------------------------------------------------------------------
To unsubscribe, e-mail: regexp-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: regexp-user-help@jakarta.apache.org