0

我想选择前几个连续大写单词之后的所有内容。IE:

Terry Smith is a good school teacher. She works tirelessly.

会成为;

is a good school teacher. She works tirelessly.

到目前为止,这不起作用;

(^[A-Z][a-z]+(?=\s[A-Z])(?:\s[A-Z][a-z]+)+)([\s\S]*)

我在带有“查找替换正则表达式”功能的 Drupal 的提要篡改插件中使用它,以便用空格替换“Terry Smith”之后的所有内容。

4

2 回答 2

1

以下表达式与句子开头的所有连续大写单词匹配。

^(?:(?:[A-Z][a-z]+)(?>\s*))+

正则表达式 101 演示

如果您想从 setnence 中删除该部分,那么您所要做的就是用空字符串替换它。

如果要替换后面的部分,则可以使用以下表达式:

^((?:(?:[A-Z][a-z]+)(?>\s*))+)([\s\S]+)

$1并使用用于引用第一个捕获组的替换字符串或您的语言中的任何内容。

正则表达式 101 演示

于 2013-09-14T13:19:07.703 回答
0

这将找到大写的单词:

[A-Z][a-z]+(?=\b)\s*

正则表达式可视化

您可能希望将 替换为+after*[a-z]匹配单字符大写单词。

要获取字符串开头的所有大写单词,请在其周围添加^(和:)+

^([A-Z][a-z]+(?=\b)\s*)+
于 2013-09-14T14:52:13.413 回答