Новичок в REGEX, поймите, что SFDC имеет некоторые отличия, хотя я не смог сказать, почему мое выражение работает на тестовых сайтах, но не в правиле проверки SFDC. Мне нужно, чтобы имя записи заканчивалось на -SRXXXXXXX, где X — только числовое значение. Пробное выражение: (-SR?)[0-9]+$ Правило: NOT REGEX(Name, "(-SR?)[0-9]+$")

Спасибо за любую помощь.

-1
Dan 20 Май 2021 в 23:00

1 ответ

В формулах Salesforce REGEX всегда соответствует полной строке. Таким образом, вы должны сформулировать свое выражение, чтобы вместить главные символы. Итак, где у вас есть:

(-SR?)[0-9]+$

Вместо этого вам нужно:

.*-SR[0-9]+

Обратите внимание, что из-за характера REGEX, совпадающего со всей строкой, вам не нужно совпадать с концом строки ($). Также обратите внимание, что вам не нужна группа захвата ((...), и вы не хотите, чтобы R была необязательной (согласно вашему описанию требований).

0
Adrian Larson 21 Май 2021 в 00:02
Спасибо, попробовал это с regextester.com, но он показывает (Stevens, -SR4220843a4 Frank id# 112ee3) как совпадающий. Этого не должно быть, потому что в части XXXXX есть буква, а -SRXXXX не стоит в конце.
 – 
Dan
21 Май 2021 в 00:18
Добавил +$ обратно и думаю я в деле.
 – 
Dan
21 Май 2021 в 00:25
Вы, кажется, упустили суть, функция REGEX соответствует только полной строке.
 – 
Adrian Larson
21 Май 2021 в 00:27
Нет, теперь я понимаю это и ценю, что вы сообщили мне, я использовал то, что вы предоставили, и это сработало лучше. Мне просто нужно было предотвратить совпадение, если что-то было после интересующей меня строки. Так что, возможно, это можно было бы написать лучше, но я не могу сломать это: ".*-SR[0-9]+$"
 – 
Dan
21 Май 2021 в 00:53