我可以用什么正则表达式找到两个破折号?即。 -

时间:2010-02-19 06:00:47

标签: regex

非常简单 - >一个正则表达式查询,以查找字符串中的两个破折号。如果一个字符串有两个以上的破折号,那么它将返回前两个破折号的索引。

例如

PASS: fdhfdjkgsdf--sdfdsfsdsf
PASS: sldfjkdsf------dsfdsf----fds
FAIL: asdasdsa
FAIL: asd-dsadsaads

3 个答案:

答案 0 :(得分:4)

您不需要正则表达式,大多数语言都有indexOf或类似的查找文字字符串并返回第一次出现的索引。但是如果你需要一个正则表达式,它可能只是--(取决于你的正则表达式的味道),因为在[]结构之外,-没有特殊含义。

JavaScript示例(您没有提到您使用的语言):

// Find the index of the first occurrence of "--":
if ((n = theString.indexOf("--")) >= 0) {
    // It contains them starting at index 'n'
}

// Using string.match, which checks a string to see if it contains
// a match for a regex:
if (theString.match(/--/)) {
    // Yes it does
}

答案 1 :(得分:2)

“ - ”不是特殊字符,除非它在一个范围内,所以你的正则表达式只是“ - ”。

答案 2 :(得分:1)

如果你想使用正则表达式,它就像/--/一样简单。但是,大多数语言都提供字符串方法来查找子字符串的索引,例如在Python中。

>>> s="abc--def"
>>> s.index("--")
3
>>> s.find("--")
3

在Perl中,您可以使用index()