我想在连续几个大写单词之后选择所有内容。即:
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的feed篡改插件中使用了“find replace regex”功能,以便用“空格”替换“Terry Smith”之后的所有内容。
答案 0 :(得分:1)
以下表达式匹配句子开头的所有连续大写单词。
^(?:(?:[A-Z][a-z]+)(?>\s*))+
如果你想从setnence中删除那部分,那么你所要做的就是用空字符串替换它。
如果要替换之后的部件,则可以使用以下表达式:
^((?:(?:[A-Z][a-z]+)(?>\s*))+)([\s\S]+)
并使用$1
的替换字符串或您的语言中用于引用第一个捕获组的任何内容。
答案 1 :(得分:0)
这将找到大写词:
[A-Z][a-z]+(?=\b)\s*
您可能希望在+
之后将*
替换为[a-z]
,以匹配单字符大写字词。
要在字符串的开头获取所有大写单词,请在其周围添加^(
和)+
:
^([A-Z][a-z]+(?=\b)\s*)+