Я работаю над некоторым проектом, где мне нужно проанализировать выбранную строку и проверить, имеет ли строка числовое значение и значение Алфавиту. Пожалуйста, предоставьте мне решение, если у вас есть какие-либо идеи.Алгоритм строкового анализа для проверки числа и алфавитной буквы
ответ
Это true()
точно, когда строка $s
может быть использован как номер:
number($s) = number($s)
Это true()
точно, когда $s
строка состоит только из латинских символов:
string-length(translate($s, $alpha, '')) = 0
где $ alpha - строка, содержащая все строчные и прописные буквы.
Это верно, когда строка $s
содержит, по меньшей мере, одну букву или цифру:
not(string-length(translate($s, $alphaNum, '')) = string-length($s))
где $ alphaNumis строка, содержащая все строчные и прописные буквы и все цифры.
В XPath 2.0 (XSLT 2.0) можно использовать регулярные выражения и классы символов.
Update: Кажется, из комментариев Op, что он на самом деле хочет, чтобы проверить, если строка содержит буквы или цифр.
Второе новое требование - хранить в переменной какую-то часть строки в каждом случае. Однако это требование не определено вообще и только встречается в двух противоречивых примерах, приведенных в комментариях ОП.
@Hari: Вы хотите проверить, что $ Var состоит только из * букв и цифр или что он * содержит * буквы и цифры, но может также содержать другие типы символов? –
Необходимо проверить, содержит ли оно по крайней мере одну букву и номер – Hari
Возможно использование регулярных выражений. – weston
Поскольку у вас, очевидно, проблемы с логикой, пожалуйста, предоставьте небольшой XML-документ и точный ожидаемый результат преобразования. Вы говорите, что вам нужно проверить, содержит ли строка алфавитные символы * и * цифры, но в комментариях вы говорите, что выражение должно оцениваться как 'true()' для ' 100-12 ' - которое содержит только цифры и не содержит букв. –