【发布时间】:2016-09-28 09:41:10
【问题描述】:
我正在编写一个正则表达式来解析包含标记字段的行。标签出现在等号之前,内容出现在等号之后,用单引号或双引号括起来。对于大多数字段,内容用单引号引起来。如果字段的内容包含单引号,则该字段用双引号引起来。例如:
J=''K='6'2='A'6='&JOBNAM#'P='&USERNAME#'O='1,1'7=''Q='ABC.JCLLIB(TEST1)'a="'D08/APPL'"U='1'S='*ALL'T='0'V='0'R='H'W='H'
我的正则表达式有效,但用双引号括起来的字段除外。
([JK26PO7QaUSTVRW])\=(?:(?:\"([^"])*\")|(?:\'([^']*)\'))
对于上例中标记为 a 的字段,a="'D08/APPL'",a 与捕获组 1 匹配,而尾随单引号被捕获组 2 捕获。在这种情况下,我希望捕获组 2 捕获 'D08/APPL'。
【问题讨论】:
标签: regex