0

文字列から大文字で始まる単語のみを抽出できる正規表現が必要です。または、すべての文字が大文字です。たとえば、

$string= "Hola Mundo como Estas HOY"

このテキストから私は必要です

Hola、Mundo、Estas、HOY

もう1つのことは、最初の単語を表示したいのは、その例のすべての大文字がホラという単語が行かない場合のみです。私はこれを最初に持っています

^[A-Z]+$

大文字で始まり、大文字で終わる必要がありますが、どうすればパターンを追加できますか?

4

2 に答える 2

1
([A-Z]{1}[a-zA-Z]+)

PHPで:

<?php 
$string = "Hola Mundo como Estas HOY";
$pattern = "/([A-Z]{1}[a-zA-Z]+)/";
preg_match_all($pattern, $string, $matches);
echo "<pre>";
print_r($matches[0]);
echo "</pre>";
 ?>

これにより、一致する配列がダンプされます。

Array
(
    [0] => Hola
    [1] => Mundo
    [2] => Estas
    [3] => HOY
)

これをカンマ区切りの文字列として取得するには、次のようにします。

echo implode(",", $matches[0]);

戻る:

Hola,Mundo,Estas,HOY
于 2013-03-19T19:56:41.967 に答える
1

このパターンを試す

\b(?:\p{Lu}+|(?<!^)\p{Lu}\p{Ll}+)\b

ここでRegexrを参照してください

\b単語境界に一致しています

\p{Lu}すべての言語の大文字に一致する Unicode コード プロパティです。

\p{Ll}すべての言語の小文字に一致する Unicode コード プロパティです。

(\p{Lu}+|(?<!^)\p{Lu}\p{Ll}+)\p{Lu}+または のいずれかに一致する代替\p{Lu}\p{Ll}+です。

(?<!^)\p{Lu}\p{Ll}+文字列の先頭にない場合にのみ一致することを保証する後読みアサーションです。

これをphpで使用する場合は、修飾子を設定する必要がありますu

于 2013-03-19T20:01:54.043 に答える