I am trying to extract few values out of an big string , I have an hard time extracting them , I have tired a couple of regex patterns , but they always give me no match. Anyway they seem to work in the online regex sites available but not in Scala. What I am trying to do is
Input :
ESSSTOR\Disk&Ven_VendorName&Prod_MO_Might_MS_5.0&Rev_6.01\08765J54U3K4QVR0&0
Extract [output]:
Vendorname
MO_Might_MS_5.0&Rev_6.01
08765J54U3K4QVR0&0
I am trying to extract those three values from the input string , but unable to do so.
Can some one please me see what I am doing wrong.
Thanks in advance.
//Input value
val device:String= "ESSSTOR\\Disk&Ven_VendorName&Prod_MO_Might_MS_5.0&Rev_6.01\\08765J54U3K4QVR0&0"
// Regex build for product extraction
val proReg= """.*[Prod_]([^\\\\]*)""".r
// """.*Prod_([^\\\\]*)""".r -- no match as output
// """(?:Prod_)([^\\\\]*)""".r -- no match as output
println("Device: "+device)
// method -1:
device match{
case proReg(prVal) => println(s"$prVal is product val")
case _ => println("no match") }
// method-2 :
val proReg(g1) = "ESSSTOR\\Disk&Ven_VendorName&Prod_MO_Might_MS_5.0&Rev_6.01\\08765J54U3K4QVR0&0"
println(s"group1: $g1 ")
O/P:
Device: ESSSTOR\Disk&Ven_VendorName&Prod_MO_Might_MS_5.0&Rev_6.01\08765J54U3K4QVR0&0
//method-1
no match
// method-2
error
// Regex build for dev serial
val serReg = """(?:Prod_\\S*[\\\\])(.*)""".r
device match {
case serReg(srVal) => println(s"$srVal is product val")
case _ => println("no match")
}
o/p:
no match
// Regex for vendor
val venReg="""(?:Ven_)([^&]*)""".r
device match {
case venReg(vnVal) => println(s"$vnVal is vendor val")
case _ => println("no match")
}
o/p:
no match