我刚刚买了一本关于正则表达式的书,试图了解它,但我仍然在努力解决它。我正在尝试创建一个满足字符串配置的java正则表达式;
- 可以包含小写字母 ([az])
- 可以包含逗号 (,) 但只能在单词之间
- 可以包含冒号 (:) 但必须用单词分隔或乘 (*)
- 可以包含连字符 (-) 但必须用单词分隔
- 可以包含乘法 (*) 但如果使用它必须是冒号之前/之间/之后的唯一字符
- 不能包含空格,“单词”由连字符 (-) 或逗号 (,) 或冒号 (:) 或字符串结尾分隔
因此,例如以下情况是正确的:
- 富:酒吧
- 富酒吧:富
- 富,酒吧:富
- 富酒吧,富:酒吧,富酒吧
- 富:酒吧:富,酒吧
- *:富
- 富:*
*:*:*
但以下是错误的:
- 富:酒吧
- ,foo:酒吧
- foo-:bar
- -foo:酒吧
- 富,:酒吧-
- 富:酒吧,
- 富,*:酒吧
- foo-*:bar
这是我到目前为止所拥有的:
^[a-z-]|*[:?][a-z-]|*[:?][a-z-]|*