我在REGEX上苦苦挣扎,并且需要一个程序来使用它。
输入仅需要字母数字键,并且(仅允许逗号,:,空格,/,-以特殊字符表示)
我已经尝试过=(^ [a-zA-Z0-9,:\ S /-] * $)据我了解,如果我错了,请指正。a-zA-Z0-9-字母数字键。,:-逗号和冒号\ S-空间--我不确定如何表示正斜杠,因此我将其转义了--Dash也不确定是否需要将其转义。
如果可以纠正这一点以及每个部分的解释,将不胜感激。
提前致谢。
您可以替换a-zA-Z0-9只有\\w这是短期的[a-zA-Z_0-9]。此外,可以\\S是任何字符,但不能为空格,\\s而应使用a 代替。您无需转义/,即使-它是第一个还是最后一个,因为如果将其置于两个字符之间,则可以将其解释为范围,并且您必须对其进行转义。因此,您可以使您的正则表达式像^([\w,:\s/-]*)$
\S简写可以匹配除空格之外的任何字符,与您想要的正好相反。小写字母\s匹配空格[\t\v\n\r\f ]。但如果你只想要空格,只需在字符类中添加一个空格即可。-需要在字符内转义,除非它是字符类中的第一个或最后一个字符,但为了确定起见,您始终可以转义它。/不需要转义。它们在其他语言中被转义,您可以将它们用作模式分隔符。IE:/regex/i。\\和右括号\]需要转义。正则表达式
pattern = "^[a-zA-Z0-9 ,:/\\-]*$"
Run Code Online (Sandbox Code Playgroud)