繁体   English   中英

大小 ${word} 的正则表达式 - php preg_replace

[英]regex for size ${word} - php preg_replace

您能帮我使用以下示例的正则表达式吗:

lorem ipsum size large lorem ipsum

或者

lorem ipsum size m lorem ipsum

或者

lorem ipsum size 39.5 lorem ipsum 

所以简而言之,我试图在单词/分隔符大小之后提取一个单词/字符串,直到以下空白。 所以在上面的例子中它会(按顺序):大,米,39.5。

有任何想法吗?

快速更新:能否请您也包括一个可能性

size:$(size)

或者

size: $(size)

或者

size $(size)
if (preg_match('/\bsize\W+(\S+)/', $subject, $regs)) {
    $result = $regs[1];
} else {
    $result = "";
}

\bsize\W+匹配size加上一个或多个非字母数字字符(空格、标点符号等),但由于\b单词边界锚,它不匹配capsize

然后(\S+)匹配一个或多个非空白字符并在第一个反向引用中捕获它们(在本例中$regs[1] )。

$strings = array(
    'lorem ipsum size large lorem ipsum',
    'lorem ipsum size m lorem ipsum',
    'lorem ipsum size 39.5 lorem ipsum ',
);
foreach ( $strings as $string ) {
    if ( preg_match('#\bsize\b\s+(\S+)\s#', $string, $matches) ) {
        echo "<b>Matched '{$string}':</b>\n\n";
        print_r($matches);
    }
}

Output:

Matched 'lorem ipsum size large lorem ipsum':
Array
(
    [0] => size large 
    [1] => large
)

Matched 'lorem ipsum size m lorem ipsum':
Array
(
    [0] => size m 
    [1] => m
)

Matched 'lorem ipsum size 39.5 lorem ipsum ':
Array
(
    [0] => size 39.5 
    [1] => 39.5
)

大小存储在$matches[1]中。

preg_match('/\ssize\s+(\S+)/', $string, $matches);
echo $matches[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM