функция совпадения строк - PullRequest
0 голосов
/ 03 июня 2011

Привет, мне нравится создавать строковую функцию:

if member of a list of string: 
    "Nissan" from "Honda, Toyota, Nissan, Mazda"

  if start with or end with
    "Nissan" from "Nis*" as start with 
    "Nissan" from "*san" as end with

  if not start with or end with 
    "Ford" from "^Nis*" as start with 
    "Ford" from "^*san" as end with 

  if Not member of a list of string:
    "Ford" from "^Hon*, ^Toy*, Nis*, Mazda"

Я думал, что Regex может быть решением, но как мне его реализовать?

Спасибо, Уэс

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

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

  1. Чтобы проверить, является ли строка одним из следующих: Honda, Toyota, Nissan, Mazda

    ^(Honda|Toyota|Nissan|Mazda)$

  2. Начинается с Nis

    ^Nis.*$
    
  3. Заканчивается на san

    ^.*san$
    
  4. Не начинается с Nis

    ^(?!Nis).*
    
  5. Не заканчивается san

    ^.*(?<!san)$
    
  6. Не содержит Hon*, Toy*, Nis*, Mazda

    ^(?!Hon.*|Toy.*|Nis.*|Mazda).*
    
1 голос
/ 03 июня 2011

Не совсем уверен, что вы спрашиваете, но

если у вас есть

List<string> strings = ...

и

string input = ...

тогда вы можете сделать

bool memberIsInList = strings.Contains(input);      
bool memberStartsOrEndsWith = strins.Any(s => s.StartsWith(input) || s.EndsWith(input));

для двух других должно быть одинаковым, смешивание в неоператоре (!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...