I'm new with this jflex and regular expressions I read a lot even though I know I faced the solution in the manual but really I can't understand these regular expressions. I want simple read a text file with jflex and return every line that starts with name =
or name=
but this was a pain for me for 1 week I'm reading all regular expressions in the jflex document but I can't understand which one I can use to achieve it anyone can help me out? with jflex rules and any code to contain that?
this is the example input and output
bla bla bla
bla bla bla
name=StackOverFlow
name = ThisIsGo
bla bla bla
Output:
StackOverFLow
ThisIsGo
CodePudding user response:
If you need to match something placed after the equal sign preceded by the word name
, then you could simply describe that syntax and use a capturing group to enclose the value after the equal sign.
name\s*=\s*(. )
Test Link
Here you can test the regex above:
https://regex101.com/r/FMXSDK/1
Code Snippet
Your code would look like this:
String str = "bla bla bla\n"
"bla bla bla\n"
"name=StackOverFlow\n"
"name = ThisIsGo\n"
"bla bla bla";
Pattern pattern = Pattern.compile("name\\s*=\\s*(. )");
Matcher matcher = pattern.matcher(str);
while (matcher.find()){
System.out.println(matcher.group(1));
}
Output
StackOverFlow
ThisIsGo