regex 正则表达式来匹配多个空格,但如果空格在句点之后则不匹配

krugob8w  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(121)

示例:My Name is Mohit. Surname is Kumar
正则表达式应该只匹配is后面的空格,因为它后面有多个空格,但不匹配其他单词后面的空格,因为它们后面只有一个空格,也不匹配Mohit.后面的空格,因为单词后面有一个句点。
我试过了

  1. (?<!\.)\s{2,}
  2. (?<!\.)\s+
    但是这两个表达式都匹配Mohit.之后的多个空格,除了第一个空格。我在Regex101上测试正则表达式。
    谢谢你的帮助
pwuypxnk

pwuypxnk1#

尝试:

/(?<!\.|\s)\s{2,}/gm

查看演示:https://regex101.com/r/imlcbQ/1

roqulrg3

roqulrg32#

试试这个:(?<=\w)\s{2,}
它之所以有效,是因为:

  • 如果有一个肯定的向后看,检查是否存在单词字符。
  • 然后,它匹配两个或多个空格。

实际上,它将匹配2+个空格,只要它们前面有一个单词字符。由于点不是单词字符,因此点后的空格将不被考虑。

nfzehxib

nfzehxib3#

这是工作正则表达式:

(?<=\S)(?<!\.)\s{2,}

*(?<=\S):匹配非空格字符后面的位置的正向后查找Assert。
*(?<!.):负后看Assert,确保匹配前面没有句点。
*\s{2,}:匹配两个或多个连续的空格字符。

regex101:https://regex101.com/r/CWyQah/1

相关问题