Skip to content
8 changes: 6 additions & 2 deletions pandas/core/arrays/_arrow_string_mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,8 +321,12 @@ def _str_fullmatch(
flags: int = 0,
na: Scalar | lib.NoDefault = lib.no_default,
):
if not pat.endswith("$") or pat.endswith("\\$"):
pat = f"{pat}$"
if not pat.endswith("$") and not pat.startswith("^"):
pat = f"^({pat})$"
elif not pat.endswith("$"):
pat = f"^({pat[1:]})$"
elif not pat.startswith("^"):
pat = f"^({pat[0:-1]})$"
return self._str_match(pat, case, flags, na)

def _str_find(self, sub: str, start: int = 0, end: int | None = None):
Expand Down
Loading