任何人都可以为下面提到的条件建议正则表达式。
我在Regex pattern for "contains not only spaces"尝试了这种模式.*[^ ].*
。您能否建议如何将其限制为50个字符。
答案 0 :(得分:1)
我认为正则表达式中的 lookahead 可以提供帮助。
尝试在正则表达式前添加(?=。{0,50} $)。有这样的事情:
(?=.{0,50}$)^.*[^ ].*
如果您不想允许空字符串,可以将{0,50}更改为{1,50}。
答案 1 :(得分:0)
您无法在Go正则表达式模式中使用外观。在Java中,要将非空字符串与0到50个字符匹配,可以使用
s.matches("(?s)(?!.{51})\\s*\\S.*")
模式匹配整个字符串(matches
默认锚定匹配)并表示:
(?s)
- Pattern.DOTALL
内联修饰符使.
也匹配换行符(?!.{51})
- 在字符串中禁止51个字符的负向前瞻(因此,允许少于51,0到50,等于(?=.{0,50)$
)\\s*
- 0+ whitespaces \\S
- 非空白字符.*
- 字符串末尾的任何0 +字符。在Go中,只需使用一些代码即可。导入strings
并使用
len(s) <= 50 && len(s) >= 1 && len(strings.TrimSpace(s)) != 0
此处,len(s) <= 50 && len(s) >= 1
将字符串长度限制为1到50个字符,len(strings.TrimSpace(s)) != 0
禁止空/空字符串。