因此,如果我直接将表格复制到剪贴板,则会给出以下结果:
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
如您所见,它不应该匹配任何结果,因为没有“肮脏+空置+已退房”房间。是否可以编写正则表达式来匹配这些条件?
问题
如果我没理解错的话,你想提取房间号当且仅当:
建议的解决方案
我认为你对正则表达式进行了过度设计。把事情简单化。 尝试这个正则表达式:它检查 Dirty 是否在 1 行之后跟随一到四位数字,并让以下 2 行被占用并签出。
Dirty.+\n.*\n(\d{1,4})\nOccupied\nChecked Out
如果有效的话请考虑投票给我,这是我的第一个答案:')