0

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

一个例子:testertestertesttestertesterte

我的正则表达式是:

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

但是,而不是匹配:

testertestertest

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

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

4

2 回答 2

4

您可以将搜索锚定到字符串的开头^

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

如果要匹配字符串中超过8 个字符,则还需要将 8 调整为 9。

^([a-zA-Z1-9_]{9,16})
于 2013-05-28T18:53:41.113 回答
2

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

^([a-zA-Z1-9_]{8,16})
于 2013-05-28T18:54:01.110 回答