从开头匹配子字符串,必须以某个字符串结尾并具有一定的最大长度

时间:2011-12-06 14:22:36

标签: regex

假设一个有效的字符串由一些句子组成,最大长度为10.句子以点和至少一个空白字符结尾。

lol. omg rofl. => lol.

lol. omg. rofl. => lol. omg.

lol. => lol.

lol omg rofl. =>没有比赛

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

/^.{,8}\. /

说明:

  • ^匹配字符串
  • 的开头
  • .{,8}最多匹配8个字符(10个 - 指定2个字符)
  • \.匹配文字点和空格

编辑:哦,我错过了包含至少1个空格的句子。嗯,让我想想......

通过查看https://stackoverflow.com/a/1839379/498634我认为以下内容可能有效:

/^(?!.{11,}).* .*\. /
  • ^字符串开头
  • (?!.{11,})排除超过10个字符串的负面预测
  • .* .*任何至少有一个空格的序列
  • \.文字点和空格

答案 1 :(得分:0)

这个怎么样? (假设您的正则表达式引擎支持预测)

^.{0,9}\.(?= |$)

here on Regexr

匹配字符串开头的0到0个字符,并以.作为最后一个字符,并且需要一个空格或行/字符串的末尾跟随点。

我假设点后的空格不计入句子长度。

(?= |$)是一个积极的先行,它确保一个空格或行/字符串的末尾跟随,但不匹配。