How to remove all text after specific text with rule for each line?
-
For example I have a text file:
String s = New String("abc") //Converted abce //BC3031 DoSomething(s) //Converted xyza //BC3012 int b,c,d int a = 12 //Converted defd //BC3063 DoSomething(a) //Converted xyzds //BC3113I want to remove all text after “//Converted xxxx” at all lines so that the content will be:
String s = New String("abc") //Converted abce DoSomething(s) //Converted xyza int b,c,d int a = 12 //Converted defd DoSomething(a) //Converted xyzdsPlease help me!
-
@lionelanh97 said in How to remove all text after specific text with rule for each line?:
I want to remove all text after “//Converted xxxx”
Hello, welcome to the NPP forum.
As your example is showing a capital letter for “Converted” I have used that exactly as provided.
So my regular expression (regex) is as follows (Replace function under Search menu):
Find What:(?-i)//Converted.+(?= //)\K.+
Replace With: “nothing in this field” (empty field)
Make sure search mode is set to “regular expression” and have “wrap around” ticked. The “Find What” field is in red characters, you can select them and copy and this will prevent any possible mistyping.To give some background on the expression.
(?-i)means perform a case sensitive search, so “converted” isNOTequal to “Converted”.
//Converted.+ looks for the characters “//Converted” specifically, then followed by any number of characters (.+), limited by the next step.
(?= //) is a forward lookup, so it allows the earch engine to stop when the " //" (note space before /) are spotted. Note that as it’s a lookup, these 3 characters are not actually consumed or used at this point.
\K allows the search engine to drop all characters the regex has thus far consumed (selected). It leaves the pointer immediately before the space which is before the “//”.
.+ allows selecting ALL characters up to the end of line, not caring what sort of character they are.As the replace field is empty this means the characters selected are therefore replaced with
nothingand thus deleted.I hope this helps. If not then please provide further examples showing where it does not work.
Terry
-
@Terry-R This is exactly what I want :D Thank you very much!
-
Hello, @lionelanh97, @terry-r and All,
@terry-r, I don’t think that the look-ahead structure,
(?= //)is, even, mandatory !This regex S/R should be enough :
SEARCH
(?-si)//Converted.+\K //.+REPLACE
Leave EMPTYAs it searches the greatest range of chars
.+between the string//Convertedand the string' //', without the quotes !Best Regards,
guy038
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login