在sed中,如何表示"字母数字或_或 - "

Alf*_*ong 7 regex linux bash shell sed

试着

[a-zA-Z0-9-_]
[a-zA-Z0-0\-\_]
[[[:alnum:]]-_]
...
Run Code Online (Sandbox Code Playgroud)

在正则表达式中表示它的正确方法是什么?

似乎[a-zA-Z0-9-]适用于字母数字或短划线.但是当我添加另一个下划线时,它会中断.

anu*_*ava 8

这将是这个角色类:

[[:alnum:]_-]
Run Code Online (Sandbox Code Playgroud)

这意味着允许其中一个:

1. Alpha numeric
1. Underscore
1. Hyphen
Run Code Online (Sandbox Code Playgroud)

将连字符保持在字符类的第1位或最后位置以避免转义非常重要.

  • 详细说明,如果_un_转义的连字符 - 显示在除了第一个或最后一个位置以外的任何位置,则正则表达式处理器认为您需要_range_而不是单个字符. (2认同)