繁体   English   中英

帮助Java正则表达式

[英]Help with java regular expression

"^[\\s]*DISPLAY.*?(\".*?\").*?\\."

我有上面的正则表达式。 但是我有一个问题。

DISPLAY AC-YEAR LINE 2 POSITION 68 REVERSE.

该字符串没有被捕获。

DISPLAY "EATING.FOOD" LINE 13 POSITION 31 REVERSE.

这已成功捕获。

我不知道如何写正则表达式。

"^[\\s]*DISPLAY.*?(\".*?\")  *,?,??       .*?\\.

将量词放在)后不起作用。 它甚至没有捕获该组。

正则表达式需要在DISPLAY单词后加上一对引号(“)。这就是为什么第一个不起作用的原因。

如果您想在DISPLAY之后输入第一个非空白字(在DISPLAY和LINE之间的所有内容都应如此:

^[\\s]*DISPLAY\\s*?(\".*?\"|.*?)\\s*?LINE.*?\\.

第一个字符串与正则表达式不匹配,因为(\\".*?\\")匹配开始quot和结束quot之间的任何内容,而whicxh不在您的字符串中。 我建议您在http://www.regexplanet.com/simple/index.html上测试您的正则表达式

这应该可以捕获AC-YEAR和“ EATING.FOOD”,同时匹配整行:

^\\s*DISPLAY\\s(.*?)\\s.*\\.$

请注意,$与行尾匹配,因此文字点为\\\\. 只会在末尾匹配。

如果要在DISPLAY之后捕获所有内容,请执行以下操作:

^\\s*DISPLAY\\s(.*?)\\.$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM