nummagumma2
asked on
Need help with Regular Expression
I know next to nothing about RegEx. I'm using Textpad, which uses RegEx to do search/replace.
I have a large file that I want to condense. It's a DNS table.
In this case, I want to find all lines that end in 'B&P" )' and replace the entire line with 25spaces followed by TXT ( "B&P" )
Here's a sample. Can someone help me with this?
183.142.x.x A 127.0.0.1
TXT ( "damon somers on 2/23/2005 6:26:45 AM B&P" )
TXT ( "dave orines on 2/23/2005 6:26:48 AM B&P" )
TXT ( "franklyn abeyta on 2/23/2005 6:26:43 AM B&P" )
TXT ( "guadalupe strysko on 2/23/2005 6:26:42 AM B&P" )
TXT ( "laurence blackshear on 2/23/2005 6:26:44 AM B&P" )
TXT ( "lyndon plazza on 2/23/2005 6:26:46 AM B&P" )
TXT ( "patrick doell on 2/23/2005 6:26:41 AM B&P" )
TXT ( "rocky liem on 2/23/2005 6:26:43 AM B&P" )
TXT ( "vincent stern on 2/23/2005 6:26:46 AM B&P" )
48.142.x.x A 127.0.0.1
TXT ( "daniel spooner on 2/2/2005 12:30:40 AM B&P" )
TXT ( "glen schwalenberg on 2/2/2005 12:30:39 AM B&P" )
TXT ( "vito vierra on 2/2/2005 12:30:38 AM B&P" )
TXT ( "ward hope on 2/2/2005 12:30:37 AM B&P" )
TXT ( "branden kriege on 2/2/2005 12:30:36 AM B&P" )
TXT ( "zane duenas on 2/2/2005 12:30:34 AM B&P" )
TXT ( "vincenzo danesh on 2/2/2005 12:30:34 AM B&P" )
TXT ( "leroy bauman on 2/2/2005 12:30:33 AM B&P" )
I have a large file that I want to condense. It's a DNS table.
In this case, I want to find all lines that end in 'B&P" )' and replace the entire line with 25spaces followed by TXT ( "B&P" )
Here's a sample. Can someone help me with this?
183.142.x.x A 127.0.0.1
TXT ( "damon somers on 2/23/2005 6:26:45 AM B&P" )
TXT ( "dave orines on 2/23/2005 6:26:48 AM B&P" )
TXT ( "franklyn abeyta on 2/23/2005 6:26:43 AM B&P" )
TXT ( "guadalupe strysko on 2/23/2005 6:26:42 AM B&P" )
TXT ( "laurence blackshear on 2/23/2005 6:26:44 AM B&P" )
TXT ( "lyndon plazza on 2/23/2005 6:26:46 AM B&P" )
TXT ( "patrick doell on 2/23/2005 6:26:41 AM B&P" )
TXT ( "rocky liem on 2/23/2005 6:26:43 AM B&P" )
TXT ( "vincent stern on 2/23/2005 6:26:46 AM B&P" )
48.142.x.x A 127.0.0.1
TXT ( "daniel spooner on 2/2/2005 12:30:40 AM B&P" )
TXT ( "glen schwalenberg on 2/2/2005 12:30:39 AM B&P" )
TXT ( "vito vierra on 2/2/2005 12:30:38 AM B&P" )
TXT ( "ward hope on 2/2/2005 12:30:37 AM B&P" )
TXT ( "branden kriege on 2/2/2005 12:30:36 AM B&P" )
TXT ( "zane duenas on 2/2/2005 12:30:34 AM B&P" )
TXT ( "vincenzo danesh on 2/2/2005 12:30:34 AM B&P" )
TXT ( "leroy bauman on 2/2/2005 12:30:33 AM B&P" )
The example is the "before", correct?
thus the "AFTER" would be something like
TXT ( "B&P" )?
thus the "AFTER" would be something like
TXT ( "B&P" )?
Whoa, running TextEdit, it's regex is pretty brutal. (Running through wine on linux, at least)
Anyhow, click search/replace, select REGEX
search for -----------><b>^.*B.P</b>< ---------- --------
Replace with ---------------><b> TXT \(\"B\&P</b><------------- ---- (increase the number of spaces as you wish)
Anyhow, click search/replace, select REGEX
search for -----------><b>^.*B.P</b><
Replace with ---------------><b> TXT \(\"B\&P</b><-------------
Hmm, let me try that again
Search for: "^.*B.P"
Replace with: " TXT \(\"B\&P"
Search for: "^.*B.P"
Replace with: " TXT \(\"B\&P"
B&P"\)$
will look for it at the end of the string; not the first occurrence of it
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
achille - your final one worked with just a few minor tweaks to the spacing. Thank you! I'm posting another one with similar issue that I've never been able to figure out.
ASKER
I don't know about implementing this in your program but the expression you want is.
.+B&P"\x20\)
It will identify the lines you mentioned. Most like the replace will require you to type the 25 spaces and then TXT ( "B&P" ). In other words in the box to specify the text to replace the match with type [25 spaces]TXT ( "B&P" ). [25 spaces] in the previous sentences is for literally 25 spaces.
Let me know if you have any questions or need more information.
b0lsc0tt