myServer.registerQuery("filtered = FILTER firstcut BY dIP matches
'\\Q32.21.12.\\E*';");

throws runtime error:


Exception in thread "main"
org.apache.pig.impl.logicalLayer.parser.TokenMgrError: Lexical error at
line 1, column 45.  Encountered: "Q" (81), after : "\'\\"
        at
org.apache.pig.impl.logicalLayer.parser.QueryParserTokenManager.getNextT
oken(QueryParserTokenManager.java:1693)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.jj_consume_token(Que
ryParser.java:7807)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.PUnaryCond(QueryPars
er.java:1581)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.PAndCond(QueryParser
.java:1433)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.POrCond(QueryParser.
java:1377)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.PCond(QueryParser.ja
va:1343)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.FilterClause(QueryPa
rser.java:1253)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseExpr(QueryParser
.java:985)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.Expr(QueryParser.jav
a:795)
        at
org.apache.pig.impl.logicalLayer.parser.QueryParser.Parse(QueryParser.ja
va:590)
        at
org.apache.pig.impl.logicalLayer.LogicalPlanBuilder.parse(LogicalPlanBui
lder.java:60)
        at org.apache.pig.PigServer.parseQuery(PigServer.java:298)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:266)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:352)

thoughts?

-----Original Message-----
From: Brian Adams [mailto:[email protected]] 
Sent: Tuesday, July 20, 2010 5:13 PM
To: [email protected]
Subject: RE: Using Regex

double escape, in our setup

so a word break that is usually \b, needs to be '\\bthe\\b'


-----Original Message-----
From: Matthew Smith [mailto:[email protected]]
Sent: Tue 7/20/2010 5:03 PM
To: [email protected]
Subject: Using Regex
 
All,

 

I am using pig embedded in Java and need to use matches in my pig job.
However when I try to use escape characters in the pig line, the
compiler complains. How do I use complex regex while embedding?

 

Sample code that is throwing errors:

 

myServer.registerQuery("filtered = FILTER firstcut BY dIP matches
'\Q34.21.12.*\E';");

 

error: invalid escape sequence.

 

Thanks,

 

Matt

 


Reply via email to