linux - 如何在bash中检查数字是否为罗马数字
问题描述
我找到了这个,但我不明白:
if [[ "${ARG//[IVXLCDM]/}" != "" ]]
then
echo "Wrong input"
fi
解决方案
这是一个相当粗略的测试。它使用模式扩展来断言字符串是否仅由罗马数字中可接受的字符组成,而无需检查语义。
将// ... /
替换变量中出现的任何字符IVXLCDM
。只有当它们都正常时,结果才会是一个空字符串。
为什么粗制滥造?因为它会很乐意接受MCCM
哪个不是有效的罗马数字。
编辑:正如@LéaGris 指出的那样,它还将接受一个空字符串作为“罗马”,并且不等式的测试!=
效率低下。
推荐阅读
- c# - 使用 c#(Web 应用程序)时无法识别 git'
- python - 从 colab 中的驱动器中的 python 脚本导入 python 模块
- postman - 邮递员如何在导入大量端点后设置环境url变量
- dart - 如何在颤动中获取文本小部件的大小
- android - 如何发出后台服务器请求?
- c# - ASP.NET MVC 错误消息“无法连接到 Visual Studio 开发服务器。”
- php - PHP 致命错误:类未捕获错误:沙盒中的类 'Aws\Rekognition\RekognitionClient'
- python - Python - 如何读取从 Tkinter 中选择的文件?
- python - Seaborn FacetGrid 在彼此旁边绘制两个不同的 y 轴
- python - 我正在尝试将 .apply 应用于 pandas 中的列,但它抛出 TypeError: 'float' object is not subscriptable