从一串php中获取特定值

时间:2015-07-08 09:52:10

标签: php

编辑我的阙.. 值还包含一些字母

我搜索了很多问题,但我找不到它 我有这样的字符串:

Ab2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134

我想要做的是只在输出中获取所有值,如:

284t810 39h1047 3700p134

我使用substrstrpos组合获取值,但它只删除了第一个“value =”之前的部分数据,因此输出如下:

284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134

我只想删除其他所有内容并保留仅在“value =”

之后的编号值

对不起,如果有任何混淆。首次使用stackoverflow。

5 个答案:

答案 0 :(得分:14)

使用此代码: 使用此代码,您可以获得value=之后的任何字符串。 我认为这是最简单的解决方案。

$str = 'b2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134';
preg_match_all('#value=([^\s]+)#', $str, $matches);

echo implode(' ', $matches[1]);

@Kesh:\s表示空间。 [^\s]表示除空间之外的所有内容。而+表示至少有一个字符。并且它周围的()用于选择字符串,以便我们可以在操作后使用它。 ([^\s]+)表示选择除空格以外的所有内容并将其放入$matches

答案 1 :(得分:6)

通过正则表达式

进行
$str = 'b2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134';

preg_match_all("/value=([^\s]+)/", $str, $matches);

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

您可以在此处查看demo

答案 2 :(得分:1)

您可以使用前瞻查找所有 xAxis: { labels: { formatter: function() { return this.value; } }, min: myInitValue, max: myEndValue } 并在此之后获取所有字符,直到遇到空格字符,然后使用空格内嵌结果。

value=

输出

$string = 'Ab2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134';

preg_match_all("/(?=value\=([^\s]+))/", $string, $matches);

$result = implode(" ", $matches[1]);

答案 3 :(得分:1)

试试这个

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    let signupconfirmed = NSUserDefaults.standardUserDefaults().boolForKey("SignUp")
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    var initialViewController = UIViewController()
    var storyboard = UIStoryboard(name: "Main", bundle: nil)
    if signupconfirmed {
        initialViewController = storyboard.instantiateViewControllerWithIdentifier("First") as! UIViewController
    } else{
        initialViewController = storyboard.instantiateViewControllerWithIdentifier("Second") as! UIViewController
    }

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()
    return true
}

输出

$data = 'Ab2cds value=284810 shfn4wksn value=391047 hs2krj8dne value=3700134';
$array_data = explode(' ', $data);
foreach ($array_data as $array_dat) {
    $data_list[] = strstr($array_dat, '=');
}
foreach ($data_list as $key => $value) {
    $array[$key] = str_replace('=', '', $value);
}
var_dump(array_filter($array));

答案 4 :(得分:1)

只要您可以信任数据的格式,坚持使用substr()和strpos()就可以执行以下操作。

$s = 'Ab2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134';
echo "Input string: $s<br>\n";

$out = '';
$offset = 0;
while ( $offset = strpos($s,'=',$offset) )
{
  $end = strpos($s,' ',$offset);
  if ( $end )
    $out .= substr($s,$offset+1,$end-$offset);
  else
    $out .= substr($s,$offset+1);

  $offset++;
}

echo "Output string: $out<br>\n";

这将产生以下结果:

Input string: Ab2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134
Output string: 284t810 39h1047 3700p134

我猜你可能想要使用基于strpos()的解决方案来提高效率。