正则表达式匹配从网页复制的行

问题描述 投票:0回答:1

因此,如果我直接将表格复制到剪贴板,则会给出以下结果:

Dirty1057
SUPQB
1
Occupied
Checked Out
    
    
 (Unchecked) Priority
 (Unchecked) Linen Change
DEP
View
Select
Out of Order1060
SUPQV
1
Vacant
Checked Out
    
    
 (Unchecked) Priority
 (Unchecked) Linen Change

仅当该行是“脏”房间并且包含“已占用”和“已退房”时,我才尝试提取 3 到 4 位数字(房间号)。 我写了这个正则表达式

Dirty(\d{3,4})(.|\n)*?Vacant\nChecked Out

如您所见,它不应该匹配任何结果,因为没有“肮脏+空置+已退房”房间。是否可以编写正则表达式来匹配这些条件?

regex regex-group
1个回答
0
投票

问题

如果我没理解错的话,你想提取房间号当且仅当:

  • 房间类型=“肮脏”
  • 前台状态=“有人”
  • 预订状态=“已退房”

建议的解决方案

我认为你对正则表达式进行了过度设计。把事情简单化。 尝试这个正则表达式:它检查 Dirty 是否在 1 行之后跟随一到四位数字,并让以下 2 行被占用并签出。

Dirty.+\n.*\n(\d{1,4})\nOccupied\nChecked Out

如果有效的话请考虑投票给我,这是我的第一个答案:')

© www.soinside.com 2019 - 2024. All rights reserved.