Regex to match dot character occuring alone in a line - regex

A sentence containing a single dot marks the end of the required portion of a file. It may or may not be the EOF. If I use flex and bison to parse this file, how can I match this line using some regular expression? Or is there some other way? I cannot use "." in Flex grammar as it can come anywhere in any portion, may be as a part of some word, mail id, etc.
Example: if my input file is as shown:
This is a simple file for testing.
mail_id: abc#fgl.mn
date: 20.09.2011
here goes some lines of information.
.
[Here there can be more sentences].
I need to parse only till that line containing that ".". How can I do that?

The regular expression:
^\.$
will match a line containing just a dot. ^ matches the beginning of a line, $ matches the end of a line.

Related

caret and dollar sign doesn't work in scrapy s

I am trying to use regular expression to extract data from a selector. But I find caret and dollar sign doesn't work as I expected.
I was using .* to test the ^ and $ sign as below. I thought two lines below should return the same thing.
But the first one just returns an empty list. And the second one returns the entire block as I expected.
response.xpath('//script[contains(.,"reports")]/text()').re('^.*$')
response.xpath('//script[contains(.,"reports")]/text()').re('.*')
.* is not including new lines and line breaks.
^ Matches the beginning of the string, or the beginning of a line if the multiline flag is set.
Same for $ - end of string or end of line in multiline flag is set.
For better testing try ^[\s\S]*$ expression. This will include any symbols in between of string start and string end.

Regex remove everything else except one number

I have a string consists of multiple lines (output from powershell) like
....
junk line
junk line
MyVaraible=xxxx
junk line
junk line
....
I need to use one regex to get rid of all the junk lines and extract the variable value.
It is super easy if I can loop thru all the lines where I can just do
"MyVaraible=(\d+)" replace with "$1"
But I'm being super restricted by this ancient system where one regex replacement is all I am allow to do.
You may use this regex based replacement.
Search using this regex:
/^\w+=(.*)$|.*(\n|\z)/
Replace using back-reference:
$1
RegEx Demo
RegEx ^\w+=(.*)$|.*(\n|\z) matches a name-value pair separated by = or it matches a full line followed by line-break or end of string.

Make changes to the fist line for each file in notepad++

I have 50 files which have a blank first line and column headers surrounded in double quotes on the second line. I want to delete the first line and remove double quotes " from the second line for every file.
Can both these changes be done in 1 regular expression or do I need to use two different expressions?
Note: I am unable to print the first line as blank in sample data as this website is not allowing me. The \n is just to denote an empty line.
Also the second line is different in all 50 file, so I cannot use simple find and replace. I need to use some regular expression.
Sample data.
\n
"PRODUCTID","ATTRIBUTENAME_VALUE","STATE"
"00300678116042","NOT_APPLICABLE","CONFIRMED"
"00041260363603","NOT_APPLICABLE","CONFIRMED"
Expected output
PRODUCTID,ATTRIBUTENAME_VALUE,STATE
"00300678116042","NOT_APPLICABLE","CONFIRMED"
"00041260363603","NOT_APPLICABLE","CONFIRMED"
I think this should work as one replace find in files:
Find what: ^\r\n"(.*?)","(.*?)","(.*?)"
Replace with: \1,\2,\3
You can try something like this:
(?:\G(?!^)|^\R)"([^"\n]*)
and replace it with $1.
pattern details:
(?:
\G # contiguous to the previous match
(?!^) # not at the start of the line
# (to prevent \G to match the start of the string)
| # OR
^\R # start of a line followed by a newline (an empty line)
)
"
([^"\n]*) # capture group 1: all that is not a quote or a newline
# (to reach the next quote)

Regular Expressions in Notepad++ starting with text and ending with incremental number

I'm trying to understand this as I'm reading tutorials and apply this to what I'm doing.
I have a file with lines of text like:
line1blahblahblahblah
line2blahblahblahblah
...
line10blahblahblahblah
I want to go in and remove the line and the number after it (which is incremented 1-1000 for each line) and replace it with new text leaving all the text after in tact.
Can someone explain how and explain the regex expression?
Search for
^line\d+
And replace with an empty string.
Explanation: The ^ matches the begining of the line, the line matches a literal character sequence, and the \d matches any digit character. The + after the \d makes it match one or more digits characters.
Your Notepad++ search panel should look like this:

regex match only specific file lines

I have a file containing lines like:
13
13-55
some text 11
I want to create a regex to match only first to type of lines, but not the last one.
Reges created by me is [0-9\-]+
You have to specify that you are testing from the beggining to the end of the string:
Try with following regex:
^[0-9-]+$
Try using anchors (^ and $ to denote beginning and end of string respectively) and use the multiline option (this one depends on the language/engine/environment of the regex).
^[0-9-]+$
Note, you can drop the backslash for the - if it's at the beginning or end of a character class.
If you want to match lines which start with number.
^[0-9-]+$