我正在尝试创建一个正则表达式来匹配字母数字字符和下划线_
。这是我的正则表达式:"\w_*[^-$\s\]"
我的印象是这个正则表达式意味着任何字母数字字符\w
, 下划线_
, 和不-
,$
,或空格。它是否正确?
正则表达式被读取为实际匹配字符串中字符的模式,从左到右,因此您的模式实际上匹配字母数字,然后是下划线(0 或多个),然后至少有一个不是连字符、美元或空格的字符。
由于您尝试交替使用字符类型,因此只需使用字符类来显示您允许的字符:
[\w_]
这会检查字符串的任何部分是否与其匹配,因此让我们将其锚定到字符串的开头和和:
^[\w_]$
现在我们看到字符类缺少量词,因此我们只匹配一个字符。我们可以使用以下方法修复该问题+
(如果您想要一个或多个字符,则不能为空字符串)或*
(如果你想允许空字符串)。我会用+
here.
^[\w_]+$
事实证明,\w
字符类已经包含下划线,因此我们可以从模式中删除多余的下划线:
^[\w]+$
现在字符类中只有一个字符,因此我们不再需要字符类括号:
^\w+$
这就是您所需要的,除非我遗漏了您的要求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)