问题
构建一个regex语句,该语句允许以下内容:
测试用例:
expected_to_pass = ['testa', ' test a', 12342, 1.234, 'test a']
expected_to_fail = [' test', 'test ', ' test ', ' ', 1234, 0.1, ' ','12345678901']示例regex语句及其用途
允许5-10个非空白字符:
[\S]{5,10}$允许5-10个字符,而不考虑空格:
[\s\S]{5,10}$我已经用这个放屁了好几个小时了,我想不出最好的办法来处理这件事。
发布于 2017-01-25 21:35:02
发布于 2017-01-25 22:15:37
在你的问题中有一个错误的假设:\w不匹配所有非空格字符,它匹配单词字符,这意味着字母、数字和下划线。根据设置的语言和标志,这可能包括或排除unicode字母和数字。还有更多的非空间字符,例如.和|。为了匹配空间字符,人们通常使用\s,因此\S匹配非空间字符.
可以使用^\s*(?:\s*){5,10}$检查您的需求。如果使用某种完全匹配功能(例如Java .matches()或Python re.fullmatch),您可能可以丢弃锚。
根据您使用的语言,您可能不想使用regex,而是迭代字符串并检查字符。这通常应该比regex快。
伪码:
number of chars = 0
for first character of string to last character of string
if character is space
inc number of chars by 1
return true if number of chars between 5 and 10https://stackoverflow.com/questions/41862024
复制相似问题