首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if语句中的bash正则表达式

if语句中的bash正则表达式
EN

Stack Overflow用户
提问于 2022-07-06 10:14:24
回答 1查看 65关注 0票数 0

我试图用正则表达式添加名称检查,它只传递字符和数字,但不传递输出中的特殊符号。我写了这段代码,但它不起作用。当我只键入带有数字或chars+special符号的字符时,它也会显示“不确定”

代码语言:javascript
复制
#!/bin/bash
regex="/^[a-zA-Z0-9_]+$/gm"
read -p "Type smth: " text

if [[ $text =~ $regex ]]
then
    echo "ok"
else
    echo "not ok"
fi

这是输出:

代码语言:javascript
复制
user@localhost:~/Documents/scripts$ ./testregex.sh
Type smth: hello$#!
not ok

user@localhost:~/Documents/scripts$ ./testregex.sh
Type smth: hello
not ok
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 10:16:27

您可以使用

代码语言:javascript
复制
if [[ $text =~ ^[[:alnum:]_]+$ ]]
then
    echo "ok"
else
    echo "not ok"
fi

详细信息

  • ^ -字符串的开始
  • [[:alnum:]_]+ -一个或多个字母、数字或下划线
  • $ -字符串的末端。

注意没有正则分隔符字符。

在线演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72881712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档