Я не помню, как SAS справляется с этими специальными символами. Любые встроенные функции?Как проверить, содержит ли строка апостроф
например
a = New Year's Day
, я должен использовать что-то вроде index(a, 'New Year's Day') > 0
?
Я не помню, как SAS справляется с этими специальными символами. Любые встроенные функции?Как проверить, содержит ли строка апостроф
например
a = New Year's Day
, я должен использовать что-то вроде index(a, 'New Year's Day') > 0
?
Ключом к этому вопросу является маскировка апострофа в кавычках. Если вы хотите, чтобы искать вхождения одного апострофа, вы можете скрыть его с двойным апострофом:
Ищут одиночных апострофы
data _NULL_;
a="New Year's Day";
b=index(a,"'");
put b=;
run;
Сингла апостроф передается в качестве второго аргумента в индекс функция, используя двойные кавычки.
Ищете двойные кавычки
data _NULL_;
a='They said, "Happy New Year!"';
b=index(a,'"');
put b=;
run;
На этот раз, двойные кавычки устанавливается в одинарные кавычки, когда передаются функции индекса
Используйте «find», как показано ниже, чтобы узнать, что вы ищете, есть ли в строке или нет. Если возвращаемое значение больше, чем> 0, то апостроф или все, что вы ищете, есть, иначе нет.
СравниваемаяСтрока - где вы хотите посмотреть
Следующая СравниваемаяСтрока является "'" - в кавычках, что вы ищете, в ваш случай апострофа
data _null_;
TestString="New year's day";
IsItThere=find(TestString,"'");
put IsItThere=;
run;
http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002267763.htm
mjsqu и NeoMental покрыли основной случай хорошо, но в в специальном случае, когда у вас нет возможности использовать "
(например, вам необходимо предотвратить разрешение макропеременной), вы можете удвоить апостроф:
data _null_;
a='MerryXmas&HappyNewYear''s'; *here need single quotes or a macro quoting function;
b=find(a,"'"); *here do not need to mask ampersand resolution;
run;
Конечно, вы также можете использовать %nrstr
, чтобы избежать разрешения, но есть случаи реальной жизни, когда это иногда необходимо. Это работает с ""
аналогичным образом (два ""
становятся одним персонажем "
).
Вы хотите проверить, содержит ли строка апостроф или нет? – NEOmen