help: regexp that works in applet but not in my code...
"Sam Wilson" <[email protected]> Wed, 23 Feb 2005 17:56:50 -0500
| Newsgroups | gmane.comp.jakarta.regexp.user |
|---|---|
| Message-ID | <[email protected]> |
Hey there,
I'm trying to make use of the RegExp library to parse the MAC address =
from the output of the Windows "ipconfig" program. I have an RE that I =
have tested using the Applet on your site and it is working fine. =
However, when I run the exact same RE in my code, it is failing.
Here's the text I'm searching (Apologize in advance if this messes with =
your MUA, but figured exactness was preferred...):
Host Name . . . . . . . . . . . . : xxx Primary Dns Suffix . . . . . =
. . : xxx Node Type . . . . . . . . . . . . : Hybrid IP Routing =
Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No =
DNS Suffix Search List. . . . . . : xxx =
xxxEthernet adapter Local Area Connection: Connection-specific =
DNS Suffix . : Description . . . . . . . . . . . : Marvell Yukon =
88E8001/8003/8010 PCI Gigabit Ethernet Controller Physical Address. . =
. . . . . . . : 00-11-2F-C9-0E-34 DHCP Enabled. . . . . . . . . . . : =
No IP Address. . . . . . . . . . . . : 10.1.1.1 Subnet Mask . . . . =
. . . . . . . : 255.255.255.255 Default Gateway . . . . . . . . . : =
10.1.1.1 DNS Servers . . . . . . . . . . . : 10.1.1.1 =
10.2.1.5 Primary WINS Server . . . . . . . : =
10.1.1.1 Secondary WINS Server . . . . . . : 10.1.1.1
Here's the RE I'm using:
([:xdigit:]{2})(\-[:xdigit:]{2}){5}
Here's the output I see from the applet:
Matches.
$0 =3D 00-11-2F-C9-0E-34
$1 =3D 00
$2 =3D -11
$3 =3D -2F
$4 =3D -C9
$5 =3D -0E
$6 =3D -34
Here's my code snippet:
private static String getEthernetAddressFromIPConfig()
{
String ipconfig =3D getIPConfig();
ServiceDebugger.println("Text to search: " + ipconfig);
ServiceDebugger.println("Regular Expression to extract MAC: " + =
IPRE);
RE re =3D new RE();
try {
re.setProgram(new RECompiler().compile(IPRE));
}
catch(RESyntaxException ex) {
throw new RuntimeException("Failed to compile RE: " + =
ex.getMessage(), ex);
}
if(re.match(ipconfig)) {
ServiceDebugger.println("MAC address found: " + =
re.getParen(0));
return re.getParen(0);
}
else {
ServiceDebugger.println("MAC not found.");
}
return null;
}
I'm wondering if I'm not setting up the RE variable correctly. Also, I'm =
using the 1.3 version of the library. Let me know if any more info would =
be useful.
Thanks in advance,
Sam Wilson
Senior Software Engineer
610-941-4600 x228
610-941-4660 (fax)
[email protected]
http://www.ecount.com