![使用计算器包检查数字](https://linux22.com/image/327466/%E4%BD%BF%E7%94%A8%E8%AE%A1%E7%AE%97%E5%99%A8%E5%8C%85%E6%A3%80%E6%9F%A5%E6%95%B0%E5%AD%97.png)
我有一个关于包裹的问题calculator
,我需要检查它是否#1
是一个数字,我可以使用条件命令吗?例如:
\def\CHECK#1{
% if #1 a number
\if...?
#1 is a number
\else
#1 is not a number
\fi
}
\CHECK{3}
\CHECK{n}
答案1
这也许太多了,但我尝试使用并使用“负类”作为正则表达式l3regex
来检查的参数是否包含任何非数字。#1
[^0-9]
更好的方法是使用条件,但除非上下文不清楚,否则我会限制使用此解决方案。
\documentclass{article}
\usepackage{xparse}
\usepackage{l3regex}
\ExplSyntaxOn
\newcommand{\CHECK}[1]{
\regex_match:nnTF {[^0-9]} {#1}{
#1~is~not~an~integer}{
#1~is~a~integer}
}% End of \CHECK definition
\ExplSyntaxOff
\begin{document}
\CHECK{1234234}
\CHECK{foo}
\CHECK{234.4523}
\end{document}