擅长:python、mysql、java
<p>我建议使用一个否定的lookbehind <code>(?<!...)</code>,可以在正则表达式的任何一点插入它,以确保在该点之前出现的任何内容都与某个表达式(即<code>...</code>)匹配。在您的例子中,您希望确保紧靠表达式开头的内容与数字(<code>\d</code>)不匹配,因此您将在正则表达式的开头插入<code>(?<!\d)</code>。在</p>
<p>如果您还想排除末尾位数错误的匹配项,如<code>aaaa18-05-181bbb</code>,那么您还可以使用负lookahead <code>(?!...)</code>,这与negative lookbehind类似,只不过它确保在某个点之后的<em>与表达式不匹配。在您的例子中,为了确保数字不在匹配结束之后,您需要在表达式的末尾添加<code>(?!\d)</code>。在</p>