0

在下面的文本中,我想提取 3 个服务。但是只有第二个 2 工作,因为第一个中的服务名称是空白的。

===============================================================================
ServiceId    Type      Adm  Opr  CustomerId Service Name
-------------------------------------------------------------------------------
100          VPRN      Up   Up   1          
2147483648   IES       Up   Down 1          _tmnx_InternalIesService
2147483649   intVpls   Up   Down 1          _tmnx_InternalVplsService
-------------------------------------------------------------------------------
Matching Services : 3
-------------------------------------------------------------------------------

这是我的模板

Value Required SERVICE_ID (\S+)
Value Required TYPE (\S+)
Value Required ADMIN_STATE (Up|Down)
Value Required OPER_STATE (Up|Down)
Value Required CUSTOMER_ID (\d+)
Value Required SERVICE_NAME (\S+)

Start
 ^----------- -> Service

Service
  ^${SERVICE_ID}\s+${TYPE}\s+${ADMIN_STATE}\s+${OPER_STATE}\s+${CUSTOMER_ID}\s+(${SERVICE_NAME}\s*|\s+)$$ -> Record
  ^-+ -> Done
  ^=+
  ^Matching\s+Services
  ^\s*$$
  ^. -> Error

Done
4

1 回答 1

0

让我眼前一亮的答案是具有“要求”的价值的定义。只需剥离它,事情就会像冠军一样工作。

Value Required SERVICE_ID (\S+)
Value Required TYPE (\S+)
Value Required ADMIN_STATE (Up|Down)
Value Required OPER_STATE (Up|Down)
Value Required CUSTOMER_ID (\d+)
Value SERVICE_NAME (\S+)

Start
 ^----------- -> Service

Service
  ^${SERVICE_ID}\s+${TYPE}\s+${ADMIN_STATE}\s+${OPER_STATE}\s+${CUSTOMER_ID}\s+(${SERVICE_NAME}\s*|\s+)$$ -> Record
  ^-+ -> Done
  ^=+
  ^Matching\s+Services
  ^\s*$$
  ^. -> Error

Done
于 2021-12-17T08:50:00.827 回答