2010-01-08 4 views

ответ

2

Вам действительно нужно проверить, есть ли в нем строка '/'? Если да, то вы могли бы рассмотреть вопрос об использовании того, что, вероятно, встроенный метод на любом языке вы пишете код в:

bool containsSlash = myString.IndexOf('/') >= 0; 

В противном случае, вы можете «убежать» характер, используя следующие обозначения;

\/ 
2

избегать его обратным слэшем, например. /

+0

См. Мое редактирование. –

1

Убегая его с помощью \ (обратной косой черты).

1

API-интерфейсы Regex имеют тенденцию быть специфичными для реализации, поэтому нам нужно знать, какой язык/инструмент вы используете, чтобы дать 100% правильный ответ. Но быстрый - это просто

.*\/.* 

Однако для этого типа вопроса гораздо эффективнее использовать API поиска строк. Regex лучше всего подходят для сопоставления шаблонов. Фильтрация для одного символа лучше всего делать через IndexOf или аналогичную функцию.

+1

ведущий и конечный. * Не потребуется в большинстве случаев :) – KiNgMaR

+1

Это зависит от того, подходит ли ваш движок к началу строки или «поиск» текста. Однако после этого не должно быть никакого значения. – avpx

0

В C#:

String sss = "<your string>"; 
Regex re1 = new Regex(@".*/.*"); 

if (re1.IsMatch(sss)) ..... 
0

Вы, вероятно, хотите \/+. Однако это зависит от двигателя.

+0

+ для этой конкретной проблемы не требуется. –

0

Я передам его вам в псевдо-Perl, потому что вы не просили ничего конкретного.

$has_slash = 0; 
# first slash starts regex 
# backslash escape the next slash 
# because it is escaped, we're looking for this as a literal slash 
# end the regex pattern with the final slash 
if ($string =~ /\//) { 
    $has_slash = 1; 
} 
1

Вам не нужно регулярное выражение для этого, есть гораздо более дешевые способы сканирования персонажа. Если вы используете c, я предлагаю вам использовать strrchr. Из: страница руководства

char * strrchr(const char *s, int c); 

strrchr() функция находит последнее вхождение с (в пересчете на полукокса) в строке s. Если c - \0', strrchr() locates the terminating \ 0 '.

Например:

bool contains(char c, char* myString) { 
    return 0 != strrchr(myString, c); 
} 

contains("alex", 'x'); // returns true 
contains("woo\\123", '\\'); // returns true 
Смежные вопросы