1 つの文字列に 0 ~ 10,000 語以上のテキストがあります。入力文字列もありますinput
。で始まらない文字列内のすべての単語を削除するにはどうすればよいinput
ですか?
元:
「これは、30兆の喉が渇いた劇作家を含むストリングです。」
入力 = "番目"
「この喉が渇いた三十人の演劇人」が戻ってきてほしいです。私は正規表現についてほとんど知識がないので、これにアプローチする方法がわかりません。
1 つの文字列に 0 ~ 10,000 語以上のテキストがあります。入力文字列もありますinput
。で始まらない文字列内のすべての単語を削除するにはどうすればよいinput
ですか?
元:
「これは、30兆の喉が渇いた劇作家を含むストリングです。」
入力 = "番目"
「この喉が渇いた三十人の演劇人」が戻ってきてほしいです。私は正規表現についてほとんど知識がないので、これにアプローチする方法がわかりません。
これがperlソリューションです。それが役立つことを願っています。
$beginning = "th";
$s = "This is a string containing thirty-trillion thirsty thespians.";
@results = $s =~/\b($beginning\w*)/ig;
print for @results`
そしてそれは印刷されます
この30人ののどが渇いた演劇人
正規表現は次のことを行います:
単語境界で一致を開始し\b
ます。
($beginning\w*)
で始まり、$beginning
その後に 0 個以上の単語文字が続く単語をキャプチャします。括弧は、括弧内で一致したものを返すことを意味します。
i
大文字と小文字が区別されないということは、g
文字列全体を調べて、一致するすべてのものをリストとして返すことを意味します (@results
こちら)。