与正则表达式匹配的java字符串
我需要匹配一个特定的键。钥匙是由破折号分隔的10套4套。组合可以是字母或数字的组合 例如 aa11-bb22-cc33-44dd-55ee-66ff-gg77-hh88-99ii-jj10 我只想验证模式是10组4个由破折号分隔的 可能通过正则表达式匹配,但我不知道如何匹配 任何帮助都将不胜感激与正则表达式匹配的java字符串,java,regex,string,pattern-matching,Java,Regex,String,Pattern Matching,我需要匹配一个特定的键。钥匙是由破折号分隔的10套4套。组合可以是字母或数字的组合 例如 aa11-bb22-cc33-44dd-55ee-66ff-gg77-hh88-99ii-jj10 我只想验证模式是10组4个由破折号分隔的 可能通过正则表达式匹配,但我不知道如何匹配 任何帮助都将不胜感激 ^[a-zA-Z0-9]{4}(?:-[a-zA-Z0-9]{4}){9}$ 试试这个。看演示 试试这个。看演示 下面是正在运行的正则表达式: 说明: [a-zA-Z0-9]-->从a到z、a到z
^[a-zA-Z0-9]{4}(?:-[a-zA-Z0-9]{4}){9}$
试试这个。看演示
试试这个。看演示
下面是正在运行的正则表达式:
说明:
[a-zA-Z0-9]
-->从a到z、a到z和0到9的任意字符[a-zA-Z0-9]{4}
-->{4}正好表示4。所以[a-zA-Z0-9]{4}
意味着
正好4个字符[a-zA-Z0-9]{4}
--->在末尾添加破折号(-)
以匹配破折号分隔符。这应该与aa11-
相匹配
范例([a-zA-Z0-9]{4}-
-->将#3放入括号中([a-zA-Z0-9]{4}-{9}
-->将{9}
添加到括号中,以指定此模式重复9次([a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}
-->[a-zA-Z0-9]
-->从a到z、a到z和0到9的任意字符[a-zA-Z0-9]{4}
-->{4}正好表示4。所以[a-zA-Z0-9]{4}
意味着
正好4个字符[a-zA-Z0-9]{4}
--->在末尾添加破折号(-)
以匹配破折号分隔符。这应该与aa11-
相匹配
范例([a-zA-Z0-9]{4}-
-->将#3放入括号中([a-zA-Z0-9]{4}-{9}
-->将{9}
添加到括号中,以指定此模式重复9次([a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}
-->你可以这样做:
(?!.*_)(\w{4}-){9}\w{4}
这利用了
\w
表示“任何字母、数字或下划线”这一事实,并且否定的前瞻性阻止了下划线 您可以这样做:
(?!.*_)(\w{4}-){9}\w{4}
这利用了
\w
表示“任何字母、数字或下划线”这一事实,并且否定的前瞻性阻止了下划线 这方面的正则表达式应该不难。你看了吗?这个正则表达式应该不难。你看了吗?很好的链接。。。我不知道regex测试中存在这样的东西。很好的链接。。。我不知道regex测试中存在类似的东西。使用@vks发布的工具:这是我的regex-任何一个都可以:我已经添加了它作为单独的注释,但也添加到了答案中。谢谢。使用@vks发布的工具:这是我的正则表达式-任何一个都可以:我已经添加了它作为单独的注释,但也添加到了答案中。谢谢。@nhahtdh是的,我知道,但是如果你读了我的答案,你会发现这不是问题,因为我使用了否定的前瞻来断言输入中没有下划线。我在NLA中使用了\w
来缩短正则表达式。@nhahdh是的,我知道,但是如果你阅读我的答案,你会发现这不是一个问题,因为我使用了否定的前瞻性来断言输入中没有下划线。我在NLA中使用了\w
,使正则表达式总体上更短。