【问题标题】:How to match only alphanumeric with regex [duplicate]如何仅将字母数字与正则表达式匹配[重复]
【发布时间】:2019-02-28 19:58:35
【问题描述】:

我正在尝试将字母数字与下面的正则表达式匹配,但仍然匹配我不需要的结果。

([0-9a-z_]+|[0-9a-z]+)

我真正想匹配的是

Example:
abc123
abc_123

我不想匹配的是

Example:
abc
123
123_123
abc_abc

【问题讨论】:

  • 字母数字的意思是数字和字母都应该存在吗?这个问题不清楚。
  • @revo 是,替代项包括下划线。
  • 这些是整行还是你打算用grep -oE '...' file之类的东西提取单独的词?
  • 试试\b_*([0-9]+_*[a-zA-Z]|[a-zA-Z]+_*[0-9])[[:alnum:]_]*\b

标签: regex posix-ere


【解决方案1】:

perl 解决方案怎么样

> cat alphanum.txt
abc123
abc_123
abc
123
123_123
abc_abc
> perl -ne ' { print if /\b([a-z]+)|_\b/ and /([0-9]+)/ }' alphanum.txt
abc123
abc_123
>

试试这是否适合你。

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 2013-06-03
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多