十六进制字符串的正则表达式

时间:2019-01-25 04:32:26

标签: regex

我正在尝试创建一个正则表达式,以检测十六进制字符串是否只是00,06,03和空格的组合。

到目前为止,我找到的最接近的是^(00 | 06 | 03)$,但仍给我0300的错误

0300 will match
0600 0300 match
0612 0300 no match
3030 no match

2 个答案:

答案 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)));