ruby - 正则表达式 [\w-] 是什么意思?

标签 ruby regex

我查了文档,找不到[\w-] 的意思。谁能告诉我 [\w-] 在 Ruby 中是什么意思?

最佳答案

方括号 [] 表示一个字符类。字符类将匹配其中的任何内容。

\w 是一个叫做“单词字符”的特殊类。它是 [a-zA-Z0-9_] 的简写,因此它将匹配:

  • a-z(全部为小写字母)
  • A-Z(全部大写字母)
  • 0-9(所有数字)
  • _(下划线)

你问的类[\w-]是由\w-组成的类。所以它将匹配上面的列表,加上连字符 (-)。

正如所写,[\w-],这个正则表达式将匹配单个字符,只要它在上面的列表中,或者是破折号。

如果您要在末尾添加量词,例如[\w-]*[\w-]+,那么它将匹配以下任何字符串:

fooBar9
foo-Bar9
foo-Bar-9
-foo-Bar---9abc__34ab12d

它会部分匹配这些:

foo,Bar9                    # match 'foo' - the ',' stops the match
-foo-Bar---9*bc__34ab12d    # match '-foo-Bar---9', the '*' stops the match

关于ruby - 正则表达式 [\w-] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353810/

相关文章:

ruby-on-rails - rails : Reloading code in development environment gives a "ApplicationHelper has been removed from the module tree but is still active!" error

python - 用于获取字符后字符串中所有数字的正则表达式

php - 如何匹配字符 '&'并在php中替换它

ruby-on-rails - 如何在 Ruby 中随机生成有效的 E164 格式的电话号码?

c# - String.Trim() 可以删除正则表达式\S 匹配的字符吗?

在多行中捕获的正则表达式适用于 regex101.com 但不适用于 PowerShell

python - 使用正则表达式从一个字符串中提取字符python

ruby - 从 Rails 中的散列中删除多个键值对

ruby - 为什么 `yield self` 有帮助?

ruby - 在 Ruby/Rack 中获取当前页面 URL