将米和厘米转换为厘米

时间:2018-07-22 22:19:50

标签: php regex

我有一个像1 M 24 Cm这样的字符串,我只想将其转换为厘米。

因此,我希望拥有1 M 24 Cm而不是124 cm

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

捕获代表仪表的前几个数字,并用捕获的组替换Cm个数字的开头,向前寻找(\d+) M (?=\d+ Cm)个数字和字符:

$1替换为$orig = '1 M 24 Cm'; $replaced = preg_replace( '/(\d+) M (?=\d+ Cm)/', '$1', $orig ); echo $replaced;

M

或者您可能会在后面寻找一个数字,并用空字符串替换$replaced = preg_replace( '/(?<=\d) M (?=\d+ Cm)/', '', $orig );

 override func awakeFromNib()
{
    super.awakeFromNib()
    let touchTest = UITapGestureRecognizer(target: self, action: #selector(self.testTap(sender:)))
    testingLabel.isUserInteractionEnabled = true
    testingLabel.addGestureRecognizer(touchTest)
}

答案 1 :(得分:1)

另一种方法可能是声明字符串^的开头,匹配一个或多个数字\d+并重置报告的匹配项\K的起点。

然后匹配M,后跟一个正向前行(?=,断言其后是一个或多个数字,后跟Cm,并断言字符串的结尾。将匹配项替换为空字符串,然后使用strtolower

$re = '/^\d+\K M (?=\d+ Cm$)/';
$str = '1 M 24 Cm';
$subst = '';
$result = strtolower(preg_replace($re, $subst, $str, 1));
echo $result; // 124 cm