限制单词长度的 Perl 正则表达式
如何创建符合以下条件的 Perl 正则表达式?
- 字长应大于 4 个字符。
- 不应包含任何非字母字符(即
. - " ,
),
因此在匹配时应拒绝诸如“barbar..”、“bar.”、“ba..”之类的单词。
How do you create a perl regex that matches the following conditions?
- Word length should be greater than 4 characters.
- Should not contain any non alphabetical characters (i.e.
. - " ,
)
So words like "barbar..", "bar.", "ba.." should be rejected in matching.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的意思是一个单词长度超过 4 个字符,并且仅包含字母字符吗?
这将匹配 az 中的 5 个或更多字母,不区分大小写:
Do you mean for a word to be longer than 4 characters, and only to contain alpha-characters?
This will match 5 or more letters from a-z, non-case-sensitive:
我会采用 Nightfirecat 的答案并为其添加单词边界以捕获单词 - 他是针对整个字符串。
I would take Nightfirecat's answer and add word boundaries to it to catch words - his is for an entire string.
除了字母之外,如果您想允许字母数字,您可以使用此
/^\w{5,}$/
(它也会匹配 '_')\w 通常匹配 ASCII 中的字母数字。对于一些例外情况,请参阅 Sinan 在这篇文章中的回答 如何验证 Perl 的输入CGI 脚本以便我可以安全地将其传递给 shell?
Instead of alphabets, if you want to allow alphanumeric you can use this
/^\w{5,}$/
(It will also match '_')\w normally matches alphanumeric in ASCII. For some of the exceptions, see the answer by Sinan in this post How can I validate input to my Perl CGI script so I can safely pass it to the shell?