[英]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.