在数字中查找两位数 (non/consecutive)
Find a double digit (non/consecutive) in a number
我正在尝试编写一个正则表达式来查找数字中的两位数。
我有r'(\d)\1+?'适用于 110 或 011,但不适用于 101。我错过了什么?
在您的模式 (\d)+?
中,您正在捕获单个数字,并且指向与第 1 组中捕获的值完全相同的值的反向引用 </code> 直接放置在捕获组之后。</p>
<p>这样,如果中间有其他(不相同的数字),反向引用就不能匹配相同的值。</p>
<p>请注意,如果您只想匹配,则可以省略 <code>+?
,因为那样会非贪婪地重复反向引用 1 次或多次。
您可能会做的是使用 \d*
匹配可选数字。
(\d)\d*
我正在尝试编写一个正则表达式来查找数字中的两位数。
我有r'(\d)\1+?'适用于 110 或 011,但不适用于 101。我错过了什么?
在您的模式 (\d)+?
中,您正在捕获单个数字,并且指向与第 1 组中捕获的值完全相同的值的反向引用 </code> 直接放置在捕获组之后。</p>
<p>这样,如果中间有其他(不相同的数字),反向引用就不能匹配相同的值。</p>
<p>请注意,如果您只想匹配,则可以省略 <code>+?
,因为那样会非贪婪地重复反向引用 1 次或多次。
您可能会做的是使用 \d*
匹配可选数字。
(\d)\d*