如何检查字符串是否包含正则表达式中的特定字符?

时间:2010-01-08 15:56:30

标签: regex

如何检查字符串是否在任何位置包含Regex中的一个或多个'/'字符?

感谢。

8 个答案:

答案 0 :(得分:2)

用反斜杠来逃避它,例如 /

答案 1 :(得分:2)

你真的需要检查字符串中是否有'/'吗?如果是这样,你可以考虑使用你编写代码的任何语言内置的方法:

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

否则,您可以使用以下符号“逃避”角色;

\/

答案 2 :(得分:1)

用\(反斜杠)转义它。

答案 3 :(得分:1)

正则表达式API往往是特定于实现的,因此我们需要知道您使用什么语言/工具来提供100%正确的答案。但快速的只是

.*\/.*

但是对于这类问题,使用字符串搜索API会更有效。正则表达式最适合匹配模式。过滤掉单个字符最好通过IndexOf或类似函数完成。

答案 4 :(得分:1)

你不需要正则表达式,有更便宜的方法来扫描角色。如果您使用c,建议您使用strrchr。从联机帮助页:

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

strrchr()函数定位   最后一次出现的c(转换为       char)在字符串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

答案 5 :(得分:0)

在c#中:

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

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

答案 6 :(得分:0)

你可能想要\/+。但这取决于发动机。

答案 7 :(得分: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;
}