我正在尝试创建一个正则表达式来查找连接的字符串,或随机大写单词的字符串。
我需要找到这样的东西:EmployeeID
,messageIndex
,JOBname
,KeyRange
,Type21
等
我正在使用^[A-Za-z0-9]+(?:_[A-Za-z0-9]+)+$
找到带有分隔符(如下划线)的连接文本。
如何找到没有分隔符的字符串?我一直在寻找所有的单词。
使用
^[A-Za-z]+(?:[A-Z0-9]+[A-Za-z0-9]*)+$
参见正则表达式证明。简单:开始匹配至少一个字母,然后要求一个大写字母或数字,然后匹配任何字母和数字。
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
[A-Za-z]+ any character of: 'A' to 'Z', 'a' to 'z'
(1 or more times (matching the most amount
possible))
--------------------------------------------------------------------------------
(?: group, but do not capture (1 or more times
(matching the most amount possible)):
--------------------------------------------------------------------------------
[A-Z0-9]+ any character of: 'A' to 'Z', '0' to '9'
(1 or more times (matching the most
amount possible))
--------------------------------------------------------------------------------
[A-Za-z0-9]* any character of: 'A' to 'Z', 'a' to
'z', '0' to '9' (0 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
)+ end of grouping
--------------------------------------------------------------------------------
$ before an optional n, and the end of the
string
请看看这是否适用于您的用例:
b((([A-Z0-9]+[a-z0-9]*)+)|(([a-z0-9]+[A-Z0-9]*))+)b
我对以下字符串进行了测试,并能够匹配它们中的每一个:"EmployeeID", "messageIndex", "JOBname", "KeyRange", "Type21">
检查大小写字母(以及数字)的交替,这些字母至少存在一次,可能重复,也可能不重复。b表示建立单词边界。如果您没有发布您试图解析的确切字符串(或敏感信息的变体),那么在不知道字符串结构的情况下,很难确定适合您情况的表达式。