Сопоставить остаток строки с регулярным выражением - PullRequest
3 голосов
/ 22 января 2012

У меня есть такая строка

ch:keyword
ch:test
ch:some_text

Мне нужно регулярное выражение, которое будет соответствовать всем строкам, однако оно не должно соответствовать следующему:

ch: (ch: is proceeded by a space, or any number of spaces)
ch: (ch: is proceeded by nothing)

IЯ могу определить длину строки с помощью 'ch:' в ней.Любая помощь будет оценена;Я использую PHP preg_match ()

Редактировать: я пробовал это:

preg_match("/^ch:[A-Za-z_0-9]/", $str, $matches)

Однако, это соответствует только 1 символу после строки.Я попытался поставить * после закрывающей квадратной скобки, но это соответствует пробелам, которые мне не нужны.

Ответы [ 4 ]

3 голосов
/ 22 января 2012
preg_match('/^ch:(\S+)/', $string, $matches);
print_r($matches);

\ S + - для сопоставления 1 или более непробельных символов.Это должно работать для вас.

2 голосов
/ 22 января 2012
<code>$str = <<<TEXT
ch:keyword
ch:test
ch:
ch:some_text
ch: red
TEXT;

preg_match_all('|ch\:(\S+)|', $str, $matches);

echo '<pre>'; print_r($matches); echo '
';

Выход:

Array
(
    [0] => Array
        (
            [0] => ch:keyword
            [1] => ch:test
            [2] => ch:some_text
        )

    [1] => Array
        (
            [0] => keyword
            [1] => test
            [2] => some_text
        )

)
2 голосов
/ 22 января 2012

Попробуйте это регулярное выражение:

^ch:\S.*$
0 голосов
/ 22 января 2012

Попробуйте использовать это:

preg_match('/(?<! +)ch:[^ ].*/', $str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...