【发布时间】:2016-05-20 23:56:13
【问题描述】:
我正在尝试将字符串与可选数量的连字符匹配。 例如, 字符串1-字符串2, 字符串1-字符串2-字符串3, string1-string2-string3 以此类推。
现在,我有一个匹配一个连字符的东西。如何使正则表达式匹配可选的连字符数?
我当前的正则表达式是:arn:aws:iam::\d{12}:[a-zA-Z]/?[a-zA-Z]-?[a-zA -Z]*
我需要添加什么?
【问题讨论】:
标签: regex
我正在尝试将字符串与可选数量的连字符匹配。 例如, 字符串1-字符串2, 字符串1-字符串2-字符串3, string1-string2-string3 以此类推。
现在,我有一个匹配一个连字符的东西。如何使正则表达式匹配可选的连字符数?
我当前的正则表达式是:arn:aws:iam::\d{12}:[a-zA-Z]/?[a-zA-Z]-?[a-zA -Z]*
我需要添加什么?
【问题讨论】:
标签: regex
使用这个正则表达式:
^\\w+(-\\w+)*$
解释:
\\w+ - match any string containing [a-zA-Z_0-9]
(-\\w+)* - match a hyphen followed by a string zero or more times
请注意,这不会匹配空字符串或包含奇怪字符的字符串。您可以手动处理这些情况,也可以更新正则表达式。
【讨论】:
String.length() 检查字符串的长度,并确保它至少包含一个字符且不超过 64 个字符。正则表达式并不适合所有类型的问题。