我找到了一个如何使用正则表达式剪切文本的解决方案。
^(?=((?:.*?\S){40})) // GET FIRST 40 CHARACTERS (IGNORING SPACES)
Fron:Extract n-character substring while ignoring spaces
问题是如果我输入了这个:asdgfhtjshhhhhhhhhasdasdasdass asd
,则没有提取任何内容。
以下是regex101链接:https://regex101.com/r/fM9lY3/5#javascript
答案 0 :(得分:1)
您可以简单地使用以下正则表达式:
^(\s*\S){1,40}
您不需要先行断言,只需将零个或多个空格字符和非空格字符放入捕获组即可。然后尾随量词将确保它最多发生40次。这里的关键是可选空间。
答案 1 :(得分:0)
这是因为{40}表示完全 40,并且您输入的文字少于40个字符。试试{1,40}(意思是1到40):
^(?=((?:.*?\S){1,40}))
答案 2 :(得分:0)
这个只使用了一小部分正则表达式,但它可以正常工作
DatabaseOpenHelper