Как определить, является ли строка именем действительной переменной?

Как подключить php 7.0 с MongoDB в ubuntu 16.04 lts?

1) Установите LAMP, используя следующую ссылку. Он устанавливает Apache2, mysql и php 7.0. https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

2) Установите сообщество сообщества MongoDB на Ubuntu, используя шаги в следующей ссылке. http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

3) Введите следующую команду, чтобы получить расширение mongoDB от pecl

sudo apt install php-pear

4) Добавьте в файл php.ini в /etc/php/apache2/7.0

extension=mongodb.so

следующее: Важно: также были изменены классы:

new MongoClient();  //Old Class

new MongoDB\Driver\Manager(); // New Class

Refer - http://php.net/manual/en/set.mongodb.php

25
задан Zannjaminderson 1 December 2009 в 23:28
поделиться

3 ответа

Попробуйте это:

// using System.CodeDom.Compiler;
CodeDomProvider provider = CodeDomProvider.CreateProvider("C#");
if (provider.IsValidIdentifier (YOUR_VARIABLE_NAME)) {
      // Valid
} else {
      // Not valid
}
47
ответ дан Gonzalo 28 November 2019 в 20:43
поделиться

Более длинный путь, плюс гораздо более медленный, состоит в том, чтобы использовать отражение, чтобы перебрать членов класса / пространства имен и сравнить, проверяя, является ли отраженный член **. ToString () ** таким же, как строковый ввод, для этого требуется предварительно загрузить сборку.

Другой способ сделать это (гораздо более длинный путь, который преодолевает использование регулярных выражений, используя уже доступный сканер / синтаксический анализатор Antlr), граничит с синтаксическим анализом / лексированием кода C # и затем сканирует имена членов (т.е. переменные) и сравнивая со строкой, используемой в качестве входных данных, например, введите строку с именем 'fooBar', затем укажите источник (например, код сборки или C #) и отсканируйте его, проанализировав специально поиск объявлений членов, например, таких как

private int fooBar;

Да, это сложно, но мощное понимание возникнет, когда вы поймете, что делают писатели компилятора, и улучшит ваши знания языка C # до уровня, когда вы достаточно близко познакомитесь с синтаксисом и его особенности.

1
ответ дан johnnyRose 28 November 2019 в 20:43
поделиться

В WPF это можно использовать для проверки, является ли строка допустимым именем переменной. Но он не распознает зарезервированные строки, такие как public.

// works only in WPF!
public static bool CheckIfStringIsValidVarName(string stringToCheck)
{
    if (string.IsNullOrWhiteSpace(stringToCheck))
        return false;

    TextBox textBox = new TextBox();

    try
    {
        // stringToCheck == ""; // !!! does NOT throw !!!
        // stringToCheck == "Name$"; // throws
        // stringToCheck == "0"; // throws
        // stringToCheck == "name with blank"; // throws
        // stringToCheck == "public"; // does NOT throw
        // stringToCheck == "ValidName";

        textBox.Name = stringToCheck;
    }
    catch (ArgumentException ex)
    {
        return false;
    }

    return true;
}
0
ответ дан marsh-wiggle 28 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: