Regex 从开始匹配子字符串,该子字符串必须以特定字符串结尾,并且具有特定的最大长度
让我们假设一个有效字符串由一些句子组成,最大长度为10。一个句子以一个点和至少一个空格字符结尾Regex 从开始匹配子字符串,该子字符串必须以特定字符串结尾,并且具有特定的最大长度,regex,Regex,让我们假设一个有效字符串由一些句子组成,最大长度为10。一个句子以一个点和至少一个空格字符结尾 lol.omg rofl.=>lol. lol.omg。rofl.=>lol.omg. lol.=>lol. lol omg rofl.=>不匹配 有什么想法吗 /^.{,8}\. / 说明: ^匹配字符串的开头 {,8}最多匹配8个字符(10个指定的2个字符) \。匹配文字点和空格 编辑:哦,我错过了包含至少1个空格的句子。嗯,让我想想 通过观察,我认为以下方法可能有效: /^(?!.{11,
lol.omg rofl.
=>lol.
lol.omg。rofl.
=>lol.omg.
lol.
=>lol.
lol omg rofl.
=>不匹配
有什么想法吗
/^.{,8}\. /
说明:
匹配字符串的开头^
最多匹配8个字符(10个指定的2个字符){,8}
匹配文字点和空格\。
/^(?!.{11,}).* .*\. /
字符串的开头^
长度超过10的排除字符串的负前瞻(?!.{11,})
至少有一个空格的任何序列**
文字点和空格\。
- 这个怎么样?(假设您的正则表达式引擎支持look aheads)
看到了吗
将字符串开头的0到0个字符与
作为最后一个字符进行匹配,并且需要在点后面加空格或行/字符串的结尾
我假设点后的空格不计入句子长度
(?=|$)
是一个正向前瞻,它确保空格或行/字符串的结尾在后面,但不匹配。“lol.”=>“lol.”点后没有空格。为什么这个匹配?是一个很好的结束空格的方法,但是你没有像我第一次那样检查句子本身的空格。我会将此合并到我的(带有源代码声明)中,如果这符合Leif的需要(不清楚ATM),则更新您的投票。@halo我在问题中没有看到此要求。否则lol.=>lol.
不应匹配,但必须匹配。一个真正的句子包含空格,但我不必检查。我完善了你的第一个版本,它的作品,谢谢!
^.{0,9}\.(?= |$)