इस कोड के साथ
import scala.util.parsing.combinator.JavaTokenParsers
class TestKeywords extends JavaTokenParsers {
def keywords: Parser[String] = "update"
def identifier: Parser[String] = not(keywords) ~> """[a-zA-Z0-9_$#]+""".r
def script: Parser[Any] = repsep(identifier,",")
}
object TestKeywordsApp extends TestKeywords with App {
val cmd = """updateDet,update"""
parseAll(script,
cmd.stripMargin) match {
case Success(lup, _) => println(lup)
case x => println(x)
}
}
मुझे त्रुटि मिलती है
[1.1] विफलता: स्ट्रिंग मिलान regex
z" expected but
यू "मिलाupdateDet, अद्यतन
इसे कैसे जोड़ेंगे? अद्यतनडेट को कीवर्ड के रूप में पहचाना नहीं जाना चाहिए
स्कैला 2.10.2
उत्तर:
जवाब के लिए 0 № 1शब्द सीमाएं शायद - अमित जोकी
विस्तार करने के लिए, आपने कहा है identifier
है not(keywords)
कुछ पात्रों के बाद। परंतु updateDet
ऐसा नहीं है - यह एक कीवर्ड से शुरू होता है। शायद आपको यह घोषणा करनी चाहिए कि एक शब्द एक शब्द सीमा के साथ समाप्त होता है (regex b
)? - एलएमएम