Я считаю, что недостаток заключается в том, что HTML - это грамматика Хомского типа 2 (контекстная свободная грамматика) , а RegEx - грамматика Хомского типа 3 (регулярная грамматика) . Поскольку грамматика типа 2 существенно сложнее, чем грамматика типа 3 (см. Иерархию Хомского ), вы не можете выполнить эту работу. Но многие попробуют, некоторые будут претендовать на успех, а другие найдут ошибку и полностью испортят вас.
После некоторых раздумий я понял, в чем проблема в конце.
Похоже, что mongodb в Windows может запускаться как локальный сервис, который запускает базу данных на 127.0.0.1:27017.
Таким образом, используя Robo3T, я подключался к этому локальному экземпляру, а не к своему подключенному экземпляру Docker Mongo. С Robo3T я мог подключиться к этому локальному экземпляру, когда снял флажок «Выполнить аутентификацию».
В Robo3T вы можете выбрать -> щелкните правой кнопкой мыши «Открыть оболочку» -> db.hostInfo()
-> F5 -> Просмотреть результаты в текстовом режиме. Это даст информацию о моем настольном компьютере
, тогда как docker exec -it mongodb mongo --eval 'db.hostInfo()'
будет отображать информацию, касающуюся моего изображения докера.
Моим решением было отключить службу mongo на моем настольном компьютере, которая запускает локальную базу данных.
Это позволило бы docker run -p 27017:27017 -it --name mongodb <myregistry>.azurecr.io/movo.mongodb
привязаться к моему док-контейнеру в 127.0.0.1:27017