编辑我的阙.. 值还包含一些字母
我搜索了很多问题,但我找不到它 我有这样的字符串:
Ab2cds value=284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134
我想要做的是只在输出中获取所有值,如:
284t810 39h1047 3700p134
我使用substr
和strpos
组合获取值,但它只删除了第一个“value =”之前的部分数据,因此输出如下:
284t810 shfn4wksn value=39h1047 hs2krj8dne value=3700p134
我只想删除其他所有内容并保留仅在“value =”
之后的编号值对不起,如果有任何混淆。首次使用stackoverflow。
答案 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()的解决方案来提高效率。