Hello all -
I have a file which has IP address and subnet number and I use regex to extract
the IP separately from subnet.
pattern used for IP: \d{1,3}(\.\d{1, 3}){3}
pattern used for subnet:((\d{1,3 })|(\d{1,3}(\.\ d{1,3}){1,3}))/(\d{1,2})
so I have list of ip/subnets strewn around like this
10.200.0.34
10.200.4.5
10.178.9.45
10.200/22
10.178/16
10.100.4.64/26,
10.150.100.0/28
10/8
with that above examples:
ip regex pattern works for all IP address
subnet regex pattern works for all subnets
problem now is ip pattern also matches the last 2 subnet numbers, because it
falls under ip regex.
to fix this problem, i used negative lookahead with ip pattern:
so the ip pattern now changes to:
\d{1,3}(\.\d{1, 3}){3}(?!/\d+)
now the problem is 10.150.100.0 works fine, 10.100.4.64 subnet gets matched
with ip pattern with the following result:
10.100.4.6
Is there a workaround for this or what should change in ip regex pattern.
python script:
#!/usr/bin/env python
import re, sys
fh = 0
try:
fh = open(sys.argv[1], "r")
except IOError, message:
print "cannot open file: %s" %message
else:
for lines in fh.readlines():
lines = lines.strip()
pattIp = re.compile("(\d {1,3}(\.\d{1,3} ){3})(?!/\d+)")
pattNet = re.compile("((\ d{1,3})|(\d{1,3 }(\.\d{1,3}){1, 3}))/(\d{1,2})")
match = pattIp.search(l ines)
if match is not None:
print "ipmatch: %s" %match.groups()[0]
match = pattNet.search( lines)
if match is not None:
print "subnet: %s" %match.groups()[0]
fh.close()
output with that above ip/subnet in a file
ipmatch: 10.200.0.34
ipmatch: 10.200.4.5
ipmatch: 10.178.9.45
subnet: 10.200
subnet: 10.178
ipmatch: 10.100.4.6
subnet: 10.100.4.64
subnet: 10.150.100.0
subnet: 10
TIA
Prabhu 1 1867
Prabhu Gurumurthy schrieb:
to fix this problem, i used negative lookahead with ip pattern:
so the ip pattern now changes to:
\d{1,3}(\.\d{1, 3}){3}(?!/\d+)
now the problem is 10.150.100.0 works fine, 10.100.4.64 subnet gets
matched with ip pattern with the following result:
10.100.4.6
Is there a workaround for this or what should change in ip regex pattern.
I think what you want is that neither /d+ nor another digit nor a . follows:
\d{1,3}(\.\d{1, 3}){3}(?!(/\d)|\d|\.)
This way 10.0.0.1234 won't be recognized as ip. Neither will 23.12.
which could be a problem if an ip is at the end of a sentence, so you
might want to omit that. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: engwar1 |
last post by:
Not sure where to ask this. Please suggest another newsgroup if this
isn't the best place for this question.
I'm new to both vb.net and regex. I need a regular expression that will
validate what people are entering as their new password.
Must be between 6 and 10 characters
Must be alphanumeric only
Can not be the word "password" in any case ie "pAsSworD" should also be
denied.
|
by: Jose |
last post by:
There's something for me to learn with this example, i'm sure :)
Given this text:
"....."
and my first attempt at capture the groups:
"(?:\)"
RegExTest gives me what i expect: 6 captured groups: Contact, Region,
All ContractRegion, ASIA PACIFIC, Japan, Japan.
However, with this C# code, i just get 2 capture groups: ",
|
by: Du Dang |
last post by:
Text:
=====================
<script1>
***stuff A
</script1>
***more stuff
<script2>
***stuff B
|
by: Sped Erstad |
last post by:
There must be a simple regexp reason for this little question but it's
driving me nuts. Below is a simple regexp to determine if a string
contains only numbers. I'm running these two strings through the two
very subtly different pieces of code: "0" and "0a"
If I do the two "nots" on it, it works perfectly ("0" succeeds, "0a"
fails). However, if I get rid of the two "nots", it appears to not do
a global match properly on the string: ...
|
by: Ioannis Vranos |
last post by:
What is the difference among the following. Please correct me if I am
wrong (this is not a homework, I am just checking System::Regex these
days and have not figured out everything yet).
"a*": As far as I know it means nothing (=it matches even the empty
string ""), or a string consisting of character 'a' followed by 0 or
more characters(?).
| |
by: Leon |
last post by:
why is the following not correct in asp.net? I'm trying to match all
subdomain names 'leon.domain.com', but
not 'www.domain.com'?
Dim sdm As Regex
sdm = New Regex (?!www\.)(.*)\.domain\.com
|
by: Leon |
last post by:
My web application allow the user to enter the site by typing in a subdomain
such as 'name.domain.com'. However, I want to retrieve just the 'name' part
of the subdomain. see code below (the equal sign '=' respresent the value
I'm getting when I run the code)
Test 1.........................name.domain.com
Dim sdmlink As String = Request.Url.ToString
|
by: vbmark |
last post by:
I'm new to RegEx in vb.net so I'm not sure how to do this.
I want to know if a string contains two minus signs "-". If there are two
then I want it to return TRUE.
I also need to know if the string contains two plus signs "+". Should this
be a seperate RegEx or can one RegEx check for both signs?
Thanks!
|
by: Chris |
last post by:
How Do I use the following auto-generated code from The Regulator?
'------------------------------------------------------------------------------
' <autogenerated>
' This code was generated by a tool.
' Runtime Version: 1.1.4322.2032
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </autogenerated>
|
by: Extremest |
last post by:
I am using this regex.
static Regex paranthesis = new Regex("(\\d*/\\d*)",
RegexOptions.IgnoreCase);
it should find everything between parenthesis that have some numbers
onyl then a forward slash then some numbers. For some reason I am not
getting that. It won't work at all in 2.0
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |