diff --git a/osprey_ui/src/components/entities/RichDescription.tsx b/osprey_ui/src/components/entities/RichDescription.tsx index 2e4f86f17..36c507c7f 100644 --- a/osprey_ui/src/components/entities/RichDescription.tsx +++ b/osprey_ui/src/components/entities/RichDescription.tsx @@ -7,8 +7,8 @@ interface RichDescriptionProps { features: { [featureName: string]: string }; } -const INTERPOLATE_REG_EX = /{([A-z0-9_]+)}/; -const SPLIT_REG_EX = /(:?{[A-z0-9_]+})/; +const INTERPOLATE_REG_EX = /{(\w+)}/; +const SPLIT_REG_EX = /(:?{\w+})/; const RichDescription = ({ description, features }: RichDescriptionProps) => { const interpolatedDescription = description.split(SPLIT_REG_EX).map((part, i) => { diff --git a/osprey_worker/src/osprey/engine/stdlib/udfs/string.py b/osprey_worker/src/osprey/engine/stdlib/udfs/string.py index 3844a7a9e..efd03420d 100644 --- a/osprey_worker/src/osprey/engine/stdlib/udfs/string.py +++ b/osprey_worker/src/osprey/engine/stdlib/udfs/string.py @@ -235,7 +235,8 @@ class StringCleaningArguments(StringArguments): ) # sub for l33t -> leet -_L33T_THREES_SUB_PATTERN: re.Pattern[str] = re.compile(r'([A-z]?)(3+)([A-z]?)', flags=re.IGNORECASE) +# with IGNORECASE this matches 3s surrounded by unicode letters like İ, ı, ſ, and K which is expected +_L33T_THREES_SUB_PATTERN: re.Pattern[str] = re.compile(r'([A-Za-z]?)(3+)([A-Za-z]?)', flags=re.IGNORECASE) # sub for |7 -> 17 _L33T_PIPE_NUMBER_SUB_PATTERN: re.Pattern[str] = re.compile(r'\|(\d)')