VBScript регулярное выражение для обработки слова до или после другого слова, используя отрицательный взгляд вперед
У меня есть шаблон ниже в VBScript, чтобы включить / выключить свет. Это захватывает случай "turn on the third bedroom light."
Тем не менее, есть ли элегантный способ также захватить случай "turn on the light in the third bedroom"
используя шаблон "все в одном"?
Я знаю, что могу выделить (light|lite)
случай в отдельном шаблоне и использовать условную логику, но я искал все в одном элегантном шаблоне, так как я все еще изучаю регулярное выражение.
Имейте в виду, что любой шаблон должен также исключать случай "third bedroom closet"
как показано на рисунке ниже. Также обратите внимание, что vbscript не поддерживает отрицательный взгляд позади (я думаю).
oRegExp.Pattern = "(third).(bedroom (?!closet)).*(light|lite)"
if oRegExp.Test(sVoice) then gProcessLight home.ThirdBedroom.Light,vPropValue
1 ответ
Решение
Вы должны будете использовать альтернативы для этого:
(third bedroom (light|lite)|(light|lite).*third bedroom (?!closet))