我正在尝试创建一个正则表达式,以检测十六进制字符串是否只是00,06,03和空格的组合。
到目前为止,我找到的最接近的是^(00 | 06 | 03)$,但仍给我0300的错误
0300 will match
0600 0300 match
0612 0300 no match
3030 no match
答案 0 :(得分:1)
@IBAction func cameraButton_Tab(_ sender: Any) {
let settings = AVCapturePhotoSettings()
photoOutput?.capturePhoto(with: settings, delegate: self)
}
extension ViewController: AVCapturePhotoCaptureDelegate {
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
if let imageData = photo.fileDataRepresentation(){
let capturedImage = UIImage(data: imageData)
let cropImage = capturedImage.scaleImage(toWidth: cameraPreviewLayer!.frame.size.width) //It will return the Image size of Camera Preview
}
}
}
仅匹配“ 00”或“ 06”或“ 03”。如果您希望这种组合重复出现,则需要添加+。
尝试^(00|06|03)$
我也在其中包括了空间。这将符合您的方案。
答案 1 :(得分:0)
关闭,但是您需要关闭并进行一些安全防护:
let v = /^((00|06|03){2}\s)*(00|06|03){2}$/;
[
'0300',
'0600 0300',
'0612 0300',
'3030',
'0303 0000',
'0630 0300',
'8790 0060',
'03 0000',
'0003 0006 0000 0000 0303 0606 0600 0306 0000',
'0606 0603 0303'
].map(s => console.log("%s : %s", s, v.test(s)));