0

I'd like to select everything after the first few consecutive capitalized words. ie:

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

would become;

is a good school teacher. She works tirelessly.

So far this doesn't work work;

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

I'm using it in Drupal's feeds tamper plugin with the "find replace regex" feature in order to replace everything after "Terry Smith" with blank space.

4

2 に答える 2

1

次の式は、文頭の大文字で始まるすべての連続する単語に一致します。

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

正規表現101のデモ

その部分を設定から削除したい場合は、空の文字列に置き換えるだけです。

その後の部分を置き換えたい場合は、次の式を使用できます。

^((?:(?:[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]1 文字の大文字の単語にも一致させることができます。

文字列の先頭にあるすべての大文字の単語を取得するには、次のように追加^()+ます。

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