我正试图提出一个正则表达式为上和下 Camel 的情况。以下是我尝试的
(([A-Z][a-z0-9]*){2,}|([a-z][A-Z0-9]*){2,})
尝试将Upper camel case与此-([A-Z][a-z 0 -9]){2,}匹配,但它也匹配其他组合。类似的是第二部分的情况-([a-z][A-Z 0 -9]){2,})
oyjwcjzk1#
这将匹配单词中至少包含一个大写字母的大写和小写字母短语。
上 Camel 箱
[A-Z][a-z0-9]*[A-Z0-9][a-z0-9]+[A-Za-z0-9]*
示例:HelloWorld,AQuickBrownFox
下 Camel 箱
[a-z]+[A-Z0-9][a-z0-9]+[A-Za-z0-9]*
例如:helloWorld,aQuickBrownFox
lhcgjxsq2#
^[a-z][a-z]*(([A-Z][a-z]+)*[A-Z]?|([a-z]+[A-Z])*|[A-Z])$
测试用例:https://regex101.com/library/4h7A1I
^[a-z][a-z0-9]*(([A-Z][a-z0-9]+)*[A-Z]?|([a-z0-9]+[A-Z])*|[A-Z])$
测试用例:https://regex101.com/library/8nQras
匹配多个大写字母(例如deviceID,serialNO,awsVPC,deviceSN),它会稍微涉及更多:
deviceID
serialNO
awsVPC
deviceSN
^[a-z][a-z0-9]*(([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{1,3})*|[A-Z]{1,3})$
测试用例:https://regex101.com/library/C2eHyc
^[A-Z](([a-z]+[A-Z]?)*)$
测试用例:https://regex101.com/library/sF2jRZ
^[A-Z](([a-z0-9]+[A-Z]?)*)$
测试用例:https://regex101.com/library/csrkQw
匹配多个大写字母(例如DeviceID,SerialNo,AwsVPC,IOStream,StreamIO,DeviceSN),它会稍微涉及更多:
DeviceID
SerialNo
AwsVPC
IOStream
StreamIO
DeviceSN
^[A-Z](([A-Z]{1,2}[a-z0-9]+)+([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{0,3})*|[A-Z]{1,2})$
测试用例:https://regex101.com/library/TLTXbK关于camel case和pascal case的更多细节,请查看repo。
gudnpqoy3#
对于lowerCamelCase,您需要:1.小写字母1.至少一个(小写字母或大写字母或编号3r)所以一个合适的正则表达式应该是
[a-z][a-zA-Z0-9]+
类似地,对于UpperCamelCase,您将有[A-Z][a-zA-Z0-9]+,如果将它们分组,则会得到
[A-Z][a-zA-Z0-9]+
[a-zA-Z][a-zA-Z0-9]+
编辑:如果你严格要求一个单词是 Camel 大小写,它需要有一个“驼峰”,其中驼峰是大写字母或数字,你需要:1.大写或小写字母,后跟1.其他小写字母(可能没有),后面跟着1.一个驼峰,接着是1.其他小写字母(可能没有),1.也许后面是另一个驼峰那么你的正则表达式是:
[a-zA-Z][a-z]*([A-Z0-9]+[a-z]*)+
3条答案
按热度按时间oyjwcjzk1#
这将匹配单词中至少包含一个大写字母的大写和小写字母短语。
上 Camel 箱
示例:HelloWorld,AQuickBrownFox
下 Camel 箱
例如:helloWorld,aQuickBrownFox
lhcgjxsq2#
小写-不允许数字
测试用例:https://regex101.com/library/4h7A1I
Camel 小写-允许数字
测试用例:https://regex101.com/library/8nQras
小写-允许数字-最多3个大写字母
匹配多个大写字母(例如
deviceID
,serialNO
,awsVPC
,deviceSN
),它会稍微涉及更多:测试用例:https://regex101.com/library/C2eHyc
Pascal Case -不允许数字
测试用例:https://regex101.com/library/sF2jRZ
Pascal Case -允许数字
测试用例:https://regex101.com/library/csrkQw
Pascal Case -允许数字-最多3个大写字母
匹配多个大写字母(例如
DeviceID
,SerialNo
,AwsVPC
,IOStream
,StreamIO
,DeviceSN
),它会稍微涉及更多:测试用例:https://regex101.com/library/TLTXbK
关于camel case和pascal case的更多细节,请查看repo。
gudnpqoy3#
对于lowerCamelCase,您需要:
1.小写字母
1.至少一个(小写字母或大写字母或编号3r)
所以一个合适的正则表达式应该是
类似地,对于UpperCamelCase,您将有
[A-Z][a-zA-Z0-9]+
,如果将它们分组,则会得到编辑:如果你严格要求一个单词是 Camel 大小写,它需要有一个“驼峰”,其中驼峰是大写字母或数字,你需要:
1.大写或小写字母,后跟
1.其他小写字母(可能没有),后面跟着
1.一个驼峰,接着是
1.其他小写字母(可能没有),
1.也许后面是另一个驼峰
那么你的正则表达式是: