可以捕获部分字符串的正则表达式,例如"字母+空格+字母+空格......"

时间:2017-10-11 22:16:54

标签: regex

我需要一个模式来删除部分字符串,例如"字母+空格+字母+空格..."直到第一个点。例如,在字符串

  

D o c t o r。我会给你一张处方。

模式应匹配" D o c t o r。 "    现在我有一个模式([A-Za-z]\s?)+\.但它匹配我需要的更多子串。任何想法如何纠正它?非常感谢。

1 个答案:

答案 0 :(得分:2)

如果在每个字母前需要单词边界,则字母之间需要空格。现在,可以匹配连续的字母,因为空白模式是可选的(1或0次出现)。

所以,你可以使用

(\b[A-Za-z]\s?)+\.

请参阅this regex demo

或者,或者,使用

\b[A-Za-z](?:\s[A-Za-z])+\.

请参阅regex demo。这里,

  • \b - 匹配前导词边界
  • [A-Za-z] - 一封信
  • (?:\s[A-Za-z])+ - 1个或更多(注意,如果您还想匹配1个字母+点序列,将+替换为*量词)连续出现的
    • \s - 空白
    • [A-Za-z] - 一封信
  • \. - 一个点。
相关问题