草庐IT

用于密码验证的 PHP 正则表达式

我没有从脚本中获得预期的效果。我希望密码包含A-Z、a-z、0-9和特殊字符。A-Za-z0-9>=2特殊字符>=2字符串长度>=8所以我想强制用户使用至少2个数字和至少2个特殊字符。好的,我的脚本可以工作,但迫使我背靠背使用数字或字符。我不想要那个。例如密码testABC55$$有效-但我不希望这样。相反,我希望test$ABC5#8有效。所以基本上数字/特殊字符可以相同或不同->但必须在字符串中分开。PHP代码:$uppercase=preg_match('#[A-Z]#',$password);$lowercase=preg_match('#[a-z]#',$password);

java - 如何匹配字符串中间或末尾的字符但只匹配一次

我正在尝试使用String.matches()匹配Java中的字符串。可接受的值为ABC321,ABC321/OTHER888或ABC321/但是/ABC321或ABC321/OTHER888/不应该匹配。所以/可以在字符串的中间或末尾,但不能在开头,它应该只出现一次。这是我设法做到的最接近的正则表达式:myString.matches("^[A-Za-z0-9]+/?[A-Za-z0-9]+/?$");但问题是/可能会出现多次。那么如何改进正则表达式以允许/仅一次? 最佳答案 您的正则表达式的问题是您允许/至少使用/?两次。您只需

java - 如何使用正则表达式递归匹配模式?

字符串可以是以下之一:a(b,c)a(a(b,c),d)a(a(a(a(a(b,c),d),a(e,f)),g),h)etc我想匹配无限数量的“a(x,y)”。我怎样才能使用Regex做到这一点?这是我拥有的:\\w\\(((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+)),((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+))\\)它只匹配“a(x,y)”的两个递归。 最佳答案 Java的标准正则表达式库不支持递归,所以你不能用它匹配这种通用的嵌套结构。但在支持递归的风格中

java - 正则表达式匹配至少 2 个数字,字符串中任意顺序的 2 个字母

我正在尝试创建一个正则表达式来模式匹配(用于密码),其中字符串必须在8到30个字符之间,必须至少有2个数字,至少2个字母(不区分大小写),至少1个特殊字符字符,没有空格。我的空格和特殊字符匹配工作正常,但我被抛出2位数字和2个字母,因为它们不需要连续。即它应该匹配a1b2c$或ab12$或1aab2c$。字母是这样的吗?(?=.*[a-zA-Z].*[a-zA-Z])//Notsure.下面的字符串有效,但前提是2个字母连续且2个数字连续。如果字母、数字、特殊字符交织在一起,则失败。(?=^.{8,30}$)((?=.*\\d)(?=.*[A-Za-z]{2})(?=.*[0-9]{2

java - 正则表达式 - 匹配具有零个或一个空格的字符串

我正在尝试匹配以@开头的字符串,该字符串可以包含任意数量的字母或数字,但最多只能包含一个空格(或零个空格)。到目前为止我已经@([A-Za-z0-9]+)匹配字符但没有空格。我想我需要\s{0,1}但我不确定把它放在哪里..任何人都可以帮忙吗?谢谢。 最佳答案 假设您只关心单词中的空格,而不关心前导或尾随,那么您可以使用这个:@[A-Za-z0-9]*?[A-Za-z0-9]*解释:@以文字@开头[A-Za-z0-9]任何字母或数字*字母或数字可以是长度{0,infinity}?空格字符,0次或一次[A-Za-z0-9]*空格后的任

java - 正则表达式只接受字母和空格,不允许在字符串的开头和结尾有空格

我有以下验证输入字段的要求:它应该只包含字母和字母之间的空格。字符串的开头和结尾不能包含空格。它不能包含任何其他特殊字符。我为此使用以下正则表达式:^(?!\s*$)[-a-zA-Z]*$但这是在开头允许空格。感谢您的帮助。 最佳答案 对我来说唯一合乎逻辑的方法是:^\p{L}+(?:\p{L}+)*$字符串的开头必须至少有一个字母。(我将您的[a-zA-Z]替换为字母的Unicode代码属性\p{L})。然后可以有一个空格后跟至少一个字母,这部分可以重复。\p{L}:来自任何语言的任何类型的信件。参见regular-express

java电子邮件提取正则表达式?

我想要一个从字符串中提取电子邮件地址的正则表达式(使用Java正则表达式)。这确实有效。 最佳答案 这是真正有效的正则表达式。我花了一个小时在网上冲浪并测试不同的方法,尽管Google将这些页面排在首位,但其中大部分都不起作用。我想与您分享一个有效的正则表达式:[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})原文链接如下:http://www.mkyong.com/regular-expressions/how-to-

java正则表达式匹配文件路径

我正在尝试创建一个正则表达式来匹配java中的文件路径C:\abc\def\ghi\abc.txt我试过这个([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\?,就像下面的代码一样importjava.util.regex.Pattern;publicclassRETester{publicstaticvoidmain(Stringarhs[]){StringregularExpression="([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\?";Stringpath="D:\\directoryname\\testing\\abc.txt";Pat

java - 用户名的正则表达式会增加 CPU 消耗

我们有以下用户名验证规则:用户名可以包含字母数字字符用户名可以有下划线、连字符或句号现在假设用户名是ASCII用户名不能以句点开头或结尾用户名不能开始、结束或有任何空格我们有以下相同的正则表达式:^(([a-zA-Z0-9]+[_-]*[a-zA-Z0-9]*)([\\.]*[a-zA-Z0-9])*)+$现在尝试匹配特定的字符串,CPU使用率呈指数增长。例如:M45766235H.M96312865E@EXAMPLE.COM显然,像上面那样匹配字符串应该会立即失败,但我想知道为什么要占用那么多CPU周期。最终代码:importjava.util.regex.*;publicclass

java - 正则表达式问题 ^[a-zA-Z0-9]{5,10}$

上面的正则表达式(在Java中)匹配一串长度在5到10之间的字母数字字符。如何修改上述正则表达式来匹配上述要求以及匹配空字符串? 最佳答案 使其可选(完全匹配一次或零次)^([a-zA-Z0-9]{5,10})?$ 关于java-正则表达式问题^[a-zA-Z0-9]{5,10}$,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4021973/