Проверка, что строка содержит только буквы в C#

Это проблема чувствительности к регистру. При первой попытке проверить ветку develop:

>git checkout develop
error: pathspec 'develop' did not match any file(s) known to git.

Нет локальной ветки с именем develop. Из-за проблем с чувствительностью к регистру при хранении информации о ветвях локальная ветвь с именем Develop может быть идентифицирована как совпадающая с именем ветвления develop, если она была сохранена как свободная ссылка. Однако, на данный момент, ни не существует, так что это спорный вопрос.

>git checkout Develop
Switched to a new branch 'Develop'
Branch 'Develop' set up to track remote branch 'Develop' from 'origin'.

Нет локальной ветки с именем Develop. Как и мы узнали из предыдущей команды, здесь нет ни одного по имени develop. Однако есть удаленная ветвь origin/Develop. Итак, git предполагает, что вы хотите это создать, поэтому он создает ветку Develop, которая отслеживает origin/Develop.

Итак, при следующем запуске:

>git checkout develop
Switched to branch 'develop'

Опять git ищет локальную ветку с именем develop. У тебя все еще нет ни одного. Тем не менее, у вас есть ветвь Develop, и поскольку git использовал свободную ссылку для хранения этой информации в нечувствительной к регистру файловой системе, было обнаружено , что информация.

К сожалению, git по-прежнему не понимает эту ситуацию: когда вы запросили ветку develop, она обнаружила информацию о Develop. Но, несмотря на это, имена веток в git чувствительны к регистру. И поскольку на самом деле нет ветви с именем develop (нижний регистр), вы сейчас находитесь в странном состоянии, когда на самом деле вы не находитесь ни в одной ветви, о которой знает git.

175
задан p.campbell 25 April 2012 в 10:26
поделиться

7 ответов

Только буквы:

Regex.IsMatch(input, @"^[a-zA-Z]+$");

Только буквы и цифры:

Regex.IsMatch(input, @"^[a-zA-Z0-9]+$");

Только буквы, цифры и подчеркивание:

Regex.IsMatch(input, @"^[a-zA-Z0-9_]+$");
274
ответ дан 4 November 2019 в 06:04
поделиться

Найдите, что метод проверяет, если символ является буквой, числом или пространством, иначе присоедините подчеркивание (Быть свободными к измененному согласно Вашим потребностям)

public String CleanStringToLettersNumbers(String data)
{
    var result = String.Empty;

    foreach (var item in data)
    {
        var c = '_';

        if ((int)item >= 97 && (int)item <= 122 ||
            (int)item >= 65 && (int)item <= 90 ||
            (int)item >= 48 && (int)item <= 57 ||
            (int)item == 32)
        {
            c = item;
        }

        result = result + c;
    }

    return result;
}
0
ответ дан 4 November 2019 в 06:04
поделиться

Только буквы:

Regex.IsMatch(theString, @"^[\p{L}]+$");

Буквы и цифры:

Regex.IsMatch(theString, @"^[\p{L}\p{N}]+$");

Буквы, цифры и подчеркивание:

Regex.IsMatch(theString, @"^[\w]+$");

Обратите внимание, что эти шаблоны также соответствуют международным символам (в отличие от использования az конструкция).

46
ответ дан 4 November 2019 в 06:04
поделиться
bool result = input.All(Char.IsLetter);

bool result = input.All(Char.IsLetterOrDigit);

bool result = input.All(c=>Char.IsLetterOrDigit(c) || c=='_');
228
ответ дан 4 November 2019 в 06:04
поделиться

Вы можете перебирать символы строки и проверять их с помощью метода Char IsLetter но вы также можете проделать трюк, используя метод String IndexOfAny для поиска других символов, которые не должны быть в строке.

4
ответ дан 4 November 2019 в 06:04
поделиться

Перебирать символы строк и использовать функции 'Char' называются 'IsLetter' и 'IsDigit'.

Если вам нужно что-то более конкретное - используйте класс Regex.

1
ответ дан 4 November 2019 в 06:04
поделиться

Я думаю, что это хороший случай для использования регулярных выражений:

public bool IsAlpha(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z]+$");
}

public bool IsAlphaNumeric(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z0-9]+$");
}

public bool IsAlphaNumericWithUnderscore(string input)
{
    return Regex.IsMatch(input, "^[a-zA-Z0-9_]+$");
}
8
ответ дан 4 November 2019 в 06:04
поделиться
Другие вопросы по тегам:

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