0

我怎样才能把它写成正则表达式?

“blocka#123#456”

我用#符号来分割数据中的参数,参数是块名,startX坐标,start Y坐标

这是嵌入在我的二维码中的数据。所以当我扫描二维码时,我想检查他们正在扫描的二维码是否正确。为此,我需要上述语法的正则表达式。

我的方法体

public void Store_QR(String qr){
   if( qr.matches(regular Expression here)) {
      CurrentLocation = qr;
   }
   else // Break the operation
}
4

4 回答 4

5

您指定的信息根本不使用正则表达式。

尝试以更一般的方式从中获取。

如果您确实需要扫描“blocka#123#456”,请使用qr.contains("blocka#123#456");

于 2012-10-31T17:37:48.840 回答
3

这取决于你想匹配什么。

  1. 以下是一些正则表达式命题:

    ^blocka#[0-9]{3}#[0-9]{3}$
    ^blocka#[0-9]+#[0-9]+$
    ^blocka(#[0-9]{3}){2}$
    ^blocka(#[0-9]+){2}$
    ^blocka(#[0-9]{3})+$
    ^blocka(#[0-9]+)+$
    
  2. 否则,只需使用contains()或类似。

于 2012-10-31T17:37:44.793 回答
1
于 2012-10-31T20:09:41.750 回答
0

我建议:

[a-z]+#\d+#\d+

如果你想捕捉这 3 个部分:

([a-z]+)#(\d+)#(\d+)

Matcher.group( 1, 2 or 3 )退回零件

于 2012-10-31T17:44:58.350 回答