Вам нужно сделать две вещи -
Для этого используйте эту ссылку в качестве ссылки - C #: Как (анализировать текстовое содержимое) / читать из документа Microsoft Word Document doc
Использовать следующее регулярное выражение -
\[(.*?)\]
См. этот сайт для получения дополнительной информации - Регулярное выражение в C #
В строке if eachenv=="DEV01" or "DEV02":
всегда выполняется второе условие:
>>> if "DEV02":
... print('hello')
...
hello
Это происходит потому, что строка "DEV02"
является объектом, поэтому будет оцениваться True
.
@Lightness Races на орбите дали правильный способ написать это, если утверждение.
if eachenv=="DEV01" or "DEV02":
Означает, если одно из следующего:
eachenv
равно "DEV01"
"DEV02"
Ну, а как насчет "DEV02"
? Он существует, так что вариант условия будет «правдивым», поэтому ваш if
всегда пройдет.
Это не то, как работают цепные условия.
Вы имели в виду:
if eachenv=="DEV01" or eachenv=="DEV02":
Теперь, если одно из следующего:
eachenv
равно "DEV01"
"DEV02"
Yay!
Проблема в if eachenv=="DEV01" or "DEV02"
.
Вы не можете проверить, как это. результат будет True
, если eachenv=="DEV01"
в противном случае результат будет "DEV02"
, а не False
. вы должны пойти так:
if eachenv in ["DEV01", "DEV02"]:
также измените for eachenv in envnames:
на:
for eachenv in envnames.readlines():