2009-08-04 3 views
2

Я бы хотел, чтобы переменная C# определяла, содержит ли строка 5+ символов в определенной последовательности.RegEx Match Последовательность из 5 символов

Пример: Если последовательность была алфавитом, тогда «ghijk» будет истинным, а «lmn» будет ложным.

Редактировать: последовательность должна быть в порядке. из примера выше «ghijz» вернет false.

+0

Содержимое строки должно содержать последовательные элементы из последовательности или только любые элементы? Другими словами, если последовательность была алфавитом, соответствует ли строка «pdrqa»? –

+0

pdrqa будет ложным, так как он не соответствует порядку последовательности. – Thad

ответ

7

Вам не обязательно нужно регулярное выражение для достижения этой цели:

bool IsInSequence(string str, string sequence) 
{ 
    return str != null && str.Length >= 5 && sequence.Contains(str); 
} 

Если я не скучаю, что вы пытаетесь достичь здесь.

+0

Просто то, что я бы сделал ... Исправлена ​​пара незначительных проблем, таких как добавление нулевой проверки и заглавия метода для C# /. NET. –

+0

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

+2

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

3
[a-zA-Z]{5,} 
+1

Это соответствует любой строке из 5 букв или более, но OP нуждается в строке, соответствующей сегменту последовательности, то есть строка должна быть в последовательном порядке. –

2

Использование Contains() вместо RegEx:

string sequence = "abcdef" 
bool match = ("abcdefghijklmnopqrstuvwxyz".contains(sequence) 
            && sequence.Length >= 5); 

Ты лучше без регулярных выражений для того, что вы делаете.

1

Если последовательность должна быть в порядке, то то, что вы ищете, не может быть выполнено с помощью регулярных выражений. Регулярные выражения могут выполнять только сопоставление образцов по символам и не могут размещать в последовательности значение (например, порядок).

Смежные вопросы