字符串的JFLEX正则表达式



我是jflex和正则表达式的新手,我读了很多,尽管我知道我在手册中遇到了解决方案,但我真的无法理解这些正则表达式。我想用jflex简单地读取文本文件,并返回以name =name=开头的每一行,但这对我来说是一个痛苦的1周,我正在阅读jflex文档中的所有正则表达式,但我无法理解哪一个我可以用来实现它,有人可以帮助我吗?用jflex规则和任何包含它的代码吗?

这是输入和输出的示例

bla bla bla
bla bla bla
name=StackOverFlow
name = ThisIsGo
bla bla bla

输出:

StackOverFLowThisIsGo

如果您需要匹配前面有单词name的等号后面的内容,那么您可以简单地描述该语法并使用捕获组将等号后面的值括起来。

names*=s*(.+)

测试链接你可以在这里测试上面的正则表达式:

https://regex101.com/r/FMXSDK/1

代码片段你的代码看起来像这样:

String str = "bla bla blan" +
"bla bla blan" +
"name=StackOverFlown" +
"name = ThisIsGon" +
"bla bla bla";
Pattern pattern = Pattern.compile("name\s*=\s*(.+)");
Matcher matcher = pattern.matcher(str);
while (matcher.find()){
System.out.println(matcher.group(1));
}

StackOverFlow
ThisIsGo

相关内容

  • 没有找到相关文章

最新更新