Java 修改正则表达式以匹配各种ISO语言代码
我希望使用正则表达式匹配以下字符串:Java 修改正则表达式以匹配各种ISO语言代码,java,regex,Java,Regex,我希望使用正则表达式匹配以下字符串: es us fr(0个破折号) fr ca(1个破折号) xx-xx-xx(两条破折号) 我有一个正则表达式的起点:([a-z])+-([a-z])+-([a-z])+,它与上面的xx示例相匹配,但不包括带1个破折号或更少破折号的字符串。那么,如何使其与上述示例中的fr-ca或fr或en-us匹配?注意:应该允许使用所有字符,而不仅仅是fr ca或fr这可能是重复的,但我不确定要搜索什么。无论如何,这里有一个简单的答案:^[a-zA-Z]{2}(?:-[
es us
(0个破折号)fr
(1个破折号)fr ca
(两条破折号)xx-xx-xx
我有一个正则表达式的起点:
([a-z])+-([a-z])+-([a-z])+
,它与上面的xx示例相匹配,但不包括带1个破折号或更少破折号的字符串。那么,如何使其与上述示例中的fr-ca
或fr
或en-us
匹配?注意:应该允许使用所有字符,而不仅仅是fr ca
或fr
这可能是重复的,但我不确定要搜索什么。无论如何,这里有一个简单的答案:^[a-zA-Z]{2}(?:-[a-zA-Z]{2}){0,2}$
这可能是重复的,但我不确定要搜索什么。无论如何,这里有一个简单的答案:
^[a-zA-Z]{2}(?:-[a-zA-Z]{2}){0,2}$
若要为任何段提供匹配的大小写,请使用:
^([a-z]{2}|[A-Z]{2})(?:-([a-z]{2}|[A-Z]{2})){0,2}$
要使任何段都具有匹配的大小写,请使用:
^([a-z]{2}|[A-Z]{2})(?:-([a-z]{2}|[A-Z]{2})){0,2}$
[a-z][a-z]([a-z][a-z]([a-z][a-z])?
您缺少可选条件[a-z][a-z]([a-z][a-z]([a-z][a-z])?
您缺少可选条件不幸的是,这也将匹配xx或更多的破折号。还有,非俘虏小组的目的是什么?@KevinWelker它会。。。限制是多少?3.非捕获组在那里,因此我可以使用*
重复匹配itI。我更新了我的答案,最多只允许3个xx
模式。幸运的是,这也将匹配xx xx xx xx或更多破折号。还有,非俘虏小组的目的是什么?@KevinWelker它会。。。限制是多少?3.非捕获组在那里,因此我可以使用*
重复匹配itI更新了我的答案,最多只允许3个xx
模式