正则表达式 - confused - 字符串的第一部分仅匹配

时间:2013-05-28 18:50:25

标签: regex

我有一个可变长度字符串,如果此字符串超过8,则只想匹配前16个字符。

一个例子:     testertestertestertestertesterte

我的正则表达式是:

([a-zA-Z1-9_]{8,16})

但是,而不是匹配:

testertestertest

它匹配整个字符串 - 每16个字符一次。

这怎么能仅限于第一场比赛?

2 个答案:

答案 0 :(得分:4)

您可以使用^

将搜索锚定到字符串的开头
^([a-zA-Z1-9_]{8,16})

如果你想让它匹配,如果字符串中有 more 而不是8个字符,你也需要调整8到9。

^([a-zA-Z1-9_]{9,16})

答案 1 :(得分:2)

您应该在RegEx模式上放置一个锚点,以指示匹配应位于该行的开头:

^([a-zA-Z1-9_]{8,16})