我需要在 C# 中使用 Regex 在以下条件下匹配字符串:
- 整个字符串只能是字母数字(包括空格)。
- 最多不得超过 15 个字符(包括空格)。
- 第一个和最后一个字符只能是一个字母。
- 除了字符串的第一个和最后一个字符之外,一个空格可以在任何地方出现多次。(不应允许多个空格一起使用)。
- 应该忽略大小写。
- 应该匹配整个单词。
如果这些先决条件中的任何一个被破坏,则不应遵循匹配。
这是我目前拥有的:
^\b([A-z]{1})(([A-z0-9 ])*([A-z]{1}))?\b$
以下是一些应该匹配的测试字符串:
- 堆栈溢出
- 我是最棒的
- 一个
- 超人23s
- 一二三
还有一些不应该匹配的(注意空格):
- 堆栈 [double_space] 溢出岩石
- 23你好
- 这是超过 15 个字符长
- 你好23
- [space_here]嘿
等等
任何建议将不胜感激。