通过正则表达式删除棘手的短语模式

时间:2019-01-01 03:42:41

标签: regex

我正在尝试删除以下模式:

  

需要重设0股分享它!分享推文作者:Leandro DD Coronel

来自这样的文本数据:

  

需要重设0股分享它! Leandro DD CoronelWe菲律宾人无法通过激烈的辩论来解决我们国家的问题,相互侮辱甚至威胁互相伤害。我们目前是一个分裂的社会。遗憾地讲,

该短语的模式是,它以大写字母开头,中间有一个“ TweetBy ”,最后一个字符是小写字母,后跟一个大写字母(不删除大写字母)。现在,我很难将其放入正则表达式中。

到目前为止,我能够提出:

[0-9A-Za-z].*Share TweetBy [A-Za-z].{1,50}[a-z].{1,1}[^ ][A-Z].{1,1}

但这会删除以下内容:

  

需要重设0股分享它!分享推文Leandro DD CoronelWe菲律宾人无法解决我们国家的

我只想删除它,直到最后一个作者的名字为止,该名字通常由最后一个小写字母和一个大写字母组成。

任何建议或想法都会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用它。

[0-9A-Za-z].*?Share TweetBy.*?[a-z](?=[A-Z])
  • [0-9A-Za-z]-将匹配_以外的单词字符。
  • .*?-将匹配换行符以外的任何内容。 (懒惰模式)。
  • Share TweetBy-将匹配Share TweetBy
  • [a-z](?=[A-Z)-[a-z]将匹配小写字母。前瞻性检查大写字母。

Demo