diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 4037e73b7e04..df44871f04df 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -48,7 +48,6 @@
"@typescript-eslint/scope-manager": "4.26.0",
"debug": "^4.3.1",
"functional-red-black-tree": "^1.0.1",
- "lodash": "^4.17.21",
"regexpp": "^3.1.0",
"semver": "^7.3.5",
"tsutils": "^3.21.0"
diff --git a/packages/eslint-plugin/src/util/astUtils.ts b/packages/eslint-plugin/src/util/astUtils.ts
index 53ad3f116e60..3fe1c01e2968 100644
--- a/packages/eslint-plugin/src/util/astUtils.ts
+++ b/packages/eslint-plugin/src/util/astUtils.ts
@@ -1,5 +1,5 @@
import type { TSESLint, TSESTree } from '@typescript-eslint/experimental-utils';
-import escapeRegExp from 'lodash/escapeRegExp';
+import { escapeRegExp } from './escapeRegExp';
// deeply re-export, for convenience
export * from '@typescript-eslint/experimental-utils/dist/ast-utils';
diff --git a/packages/eslint-plugin/src/util/escapeRegExp.ts b/packages/eslint-plugin/src/util/escapeRegExp.ts
new file mode 100644
index 000000000000..52d161b3b207
--- /dev/null
+++ b/packages/eslint-plugin/src/util/escapeRegExp.ts
@@ -0,0 +1,12 @@
+/**
+ * Lodash
+ * Released under MIT license
+ */
+const reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+const reHasRegExpChar = RegExp(reRegExpChar.source);
+
+export function escapeRegExp(string = ''): string {
+ return string && reHasRegExpChar.test(string)
+ ? string.replace(reRegExpChar, '\\$&')
+ : string;
+}