首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reg Ex问题

Reg Ex问题
EN

Stack Overflow用户
提问于 2011-01-20 14:12:56
回答 3查看 163关注 0票数 2

下面的reg ex code是什么意思?

代码语言:javascript
复制
'/^\w{4,20}$/'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-20 14:14:07

这意味着字符串应包含4到20个单词字符(字母、数字和下划线)。这里:

  • ^ (插入符号)匹配正则表达式模式应用到的字符串的开头。匹配位置而不是字符。大多数正则表达式都有一个选项,使插入符号在换行符之后匹配(例如,在文件中的行首),因为well
  • $ (美元)匹配字符串末尾的正则表达式模式。匹配位置而不是字符。大多数正则表达式风格都有一个选项,可以在换行之前(即在文件中的行尾)匹配美元。如果字符串以与单词字符(字母、数字和下划线)匹配的行break
  • \w速记字符类结尾,则还会在最后一个换行符之前进行匹配。可以在字符classes.
  • {n,m}的内部和外部使用,其中n >= 0m >= n重复前一项n到m次。贪婪,所以在将重复次数减少到n次

之前,尝试重复m次

让我给您展示一个使用示例。假设我们有一个包含以下内容的文件:

代码语言:javascript
复制
[spongebob@conductor /tmp]$ cat file.txt
between4and20
therearetoomanyalphanumcharacters
foo
okay

现在,您希望只获取那些与您的模式'/^\w{4,20}$/'匹配的字符串

代码语言:javascript
复制
[spongebob@conductor /tmp]$ grep -E '^\w{4,20}$' blah
between4and20
okay

在输出中,您只能看到满足正则表达式的那些行。

啊,还有,不要把^ (插入符号)和^混淆在第一个[之后,后者否定了character类,导致它匹配character类中没有列出的单个字符。(如果放置在除开头[)之外的任何位置,则指定插入符号,例如[^a-d]匹配x (除abcd之外的任何字符)。

票数 3
EN

Stack Overflow用户

发布于 2011-01-20 14:18:30

这意味着:

  • ^在给定字符串的开头、
  • $和结尾之间,
  • \w{4,20}只能有4-20个字母数字字符(如a、b、c、d,1,2,3...etc和_)

我想在学习正则表达式的时候,你会发现Wikipedia's page on Regular Expressions有很大很大的帮助。

为了避免混淆,如果正则表达式是:^$不一定相互需要:

'/^\w{4,20}/'

这意味着:匹配应该在字符串的起始处,后跟4-20个字母数字字符。

示例(粗体匹配):Foobar baz

如果正则表达式模式是:

'/\w{4,20}$/'

这意味着:匹配应该在字符串的末尾处,由4-20个字母数字字符组成

示例(粗体匹配):Foo barbaz

票数 3
EN

Stack Overflow用户

发布于 2011-01-20 14:19:27

代码语言:javascript
复制
/ opening delimiter    
    ^ = start of sting
    \w = word character
    {x,y} min max
    $ = end of string 
/end delimiter
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4744026

复制
相关文章

相似问题

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