我已经有一个像下面的正则表达式匹配下面给出的值。
^(.*)\s+PER\s+(.*?)(?:\sIn\s*(.+?))?(?:\s*DEAD.*)?$**
现在我需要这个正则表达式来检查下面给出的值
DataField = Value(9.0 PER Sample DEAD VOLUME 9)
我尝试过如下的Reg Ex
^(.*)\s+[=]\s+(.*?)\s+[(](.*)[)]$
哪个会这样做。
Input : DataField = Value (5 PER Sample)
当前分组输出:
Group 1: DataField
Group 2: Value
Group 3: 5 PER Sample
现在我需要一个将现有的两个正则表达式组合在一起来对输入进行分组,如下所示(突出显示)。
有人可以帮助实现这一目标吗?
答案 0 :(得分:0)
合并正则表达式:
^(?<datafield>.*)\s+[=]\s+(?<value>.*?)\s+[(](?<number>.*)\s+PER\s+(?<something>.*?)(?:\sIn\s*(?<location>.+?))?(?:\s*DEAD.*)?[)]$
现在你需要将第一部分作为可选项:
^((?<datafield>.*)\s+[=]\s+(?<value>.*?)\s+[(])?(?<number>.*)\s+PER\s+(?<something>.*?)(?:\sIn\s*(?<location>.+?))?(?:\s*DEAD.*)?[)]?$
答案 1 :(得分:0)
尝试使用以下正则表达式:
(?:(\w+)\s=\s(\w+)\s\(\s)?([\d.]+(?!$))\s\w+\s(\w+ ?(?!DEAD)\w+) ?\w* ?(?:VOLUME)? ?(\w+)?