регулярное выражение для чего-либо кроме пустой строки

Это возможный использовать регулярное выражение для обнаружения чего-либо, что НЕ является "пустой строкой" как это:

string s1 = "";
string s2 = " ";
string s3 = "  ";
string s4 = "   ";

и т.д.

Я знаю, что мог использовать обрезку и т.д., но я хотел бы использовать регулярное выражение.

44
задан Dale K 23 October 2019 в 21:32
поделиться

1 ответ

Мы можем также использовать пространство в символьном классе в выражении, подобном одному из них:

(?!^[ ]*$)^\S+$
(?!^[ ]*$)^\S{1,}$
(?!^[ ]{0,}$)^\S{1,}$
(?!^[ ]{0,1}$)^\S{1,}$

в зависимости от языка/разновидности, который мы могли бы использовать.

Демонстрация RegEx

Тест

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"(?!^[ ]*$)^\S+$";
        string input = @"

            abcd
            ABCD1234
            #$%^&*()_+={}
            abc def
            ABC 123
            ";
        RegexOptions options = RegexOptions.Multiline;

        foreach (Match m in Regex.Matches(input, pattern, options))
        {
            Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
        }
    }
}

Демонстрация C#

<час>

, Если Вы хотите упростить/изменить/исследовать выражение, оно было объяснено на верхней правой панели regex101.com . Если бы Вы хотели бы, можно также смотреть в эта ссылка , как она соответствовала бы против некоторых демонстрационных исходных данных.

<час>

Схема RegEx

jex.im визуализирует регулярные выражения:

enter image description here

0
ответ дан 26 November 2019 в 21:39
поделиться
Другие вопросы по тегам:

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