diff --git a/lib/modules/manager/terraform/lockfile/index.spec.ts b/lib/modules/manager/terraform/lockfile/index.spec.ts
index a49a2dadd1e6ded7b525cd2fea7312e2005c5309..df8ad45196e9c7d44b47477dea18aec5df30e4c5 100644
--- a/lib/modules/manager/terraform/lockfile/index.spec.ts
+++ b/lib/modules/manager/terraform/lockfile/index.spec.ts
@@ -1118,6 +1118,32 @@ describe('modules/manager/terraform/lockfile/index', () => {
       ).toBe('>= 2.36.0, 2.46.0');
     });
 
+    it('update constraint when current version is matched multiple times', () => {
+      expect(
+        getNewConstraint(
+          {
+            currentValue: '2.41.0',
+            newValue: '2.46.0',
+            newVersion: '2.46.0',
+          },
+          '>= 2.41.0, 2.41.0',
+        ),
+      ).toBe('>= 2.41.0, 2.46.0');
+    });
+
+    it('update constraint when current version is in a complicated constraint', () => {
+      expect(
+        getNewConstraint(
+          {
+            currentValue: '<= 2.41.0',
+            newValue: '<= 2.46.0',
+            newVersion: '2.46.0',
+          },
+          '>= 2.41.0, <= 2.41.0, >= 2.0.0',
+        ),
+      ).toBe('>= 2.41.0, <= 2.46.0, >= 2.0.0');
+    });
+
     it('create constraint with full version', () => {
       expect(
         getNewConstraint(
diff --git a/lib/modules/manager/terraform/lockfile/index.ts b/lib/modules/manager/terraform/lockfile/index.ts
index 70f9e8739ee9d4699d5aef27d8d0bb3a87806ca2..11ff172002a85c4b4325217d15a9b4cc58b9bae5 100644
--- a/lib/modules/manager/terraform/lockfile/index.ts
+++ b/lib/modules/manager/terraform/lockfile/index.ts
@@ -99,8 +99,8 @@ export function getNewConstraint(
     );
     //remove surplus .0 version
     return oldConstraint.replace(
-      regEx(`${escapeRegExp(currentValue)}(\\.0)*`),
-      newValue,
+      regEx(`(,\\s|^)${escapeRegExp(currentValue)}(\\.0)*`),
+      `$1${newValue}`,
     );
   }