regex - 如何检查给定的用户名是否至少有一个红宝石字母
问题描述
我有这个正则表达式:
^(?=.*[a-zA-Z])(?=.*[0-9])
但这需要字母和数字。我需要检查用户名是否充满字母pratha
或带有数字的字母pratha123
或123pratha
但不仅仅是数字1234156
我无法调整这个正则表达式来满足我的需要。我怎样才能适应这样的工作?
请注意,没有顺序应该以字母开头。它可以以数字或字母开头,但至少应包含一个字母。我只想丢弃数字。而用户名只是a-zA-Z0-9
. 所以没有Unicode字符。
使用红宝石2.6.3
演示:https ://rubular.com/r/WT9VCAphYyEMIc
更新:我发现这种模式也允许空格。它不应该。
解决方案
据我了解,您想确定字符串是否只有字母和数字以及至少一个字母。您可以使用以下正则表达式:
r = /\A\p{Alnum}*\p{L}\p{Alnum}*\z/
其内容为“匹配字符串开头的锚点,后跟零个或多个字母数字 (Unicode) 字符(字母或数字),后跟一个字母,后跟零个或多个字母数字字符,然后是字符串结尾锚”。
"12abc34".match?(r) #=> true
"1234567".match?(r) #=> false
"=12abc3".match?(r) #=> false
"".match?(r) #=> false
另一种方式:
r = /\A(?=.*\p{L})\p{Alnum}*\z/
其内容为:“匹配字符串开头的锚点,后跟一个前面有零个或多个字符的字母,在正向前瞻中(不消耗任何字符),后跟零个或多个字母数字字符,后跟一个结束-弦锚”。
推荐阅读
- excel-formula - 如何在从文本中提取日期时从范围中计数(即将执行的任务数)
- flutter - Fonts 2.1.0 and audio player 0.10.0 not working
- formsflow.ai - 提交表单时显示“提交无法完成”
- java - 如何在 Minecraft 中制作自定义操作命令
- python - Pdfplumber cannot recognize table
- sorting - 2d array table form print out
- redux - Unable to Post Checkbox and Radio button Values to the Server using Redux
- python - 如何从 pastebin.com 获取多个句子并将它们放入列表中?
- java - I loop an array to add info to the marker which i use dynamically in my other activity but i want to add more details how do i add this to the marker
- shopify - but titles on variants | shopify