有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于标记字符串的java正则表达式

我正在尝试创建一个正则表达式来标记字符串。一个示例字符串是

John Mary, "Name=blah;Name=blahAgain" "Hand=1,2"

我正试图回来:

  • 约翰
  • 玛丽
  • 名称=废话;Name=blahAgain
  • 手=1,2

共 (5) 个答案

  1. # 1 楼答案

    既然您使用的是Java,为什么不使用StringTokenizer呢?例如:

    StringTokenizer st = new StringTokenizer("String to tokenize", " ");
    while (st.hasMoreTokens())
    {
       // get next token
       String someVariable = st.nextToken();
    }
    
  2. # 2 楼答案

    这很容易:

    ([^ ])+
    
  3. # 3 楼答案

    这适用于您的示例:

    (\w+) (\w+), \"([^"]+)" \"([^"]+)
    

    你所有的字符串都有完全相同的模式吗

  4. # 4 楼答案

    对于这个具体的例子,我会:

    ([^\s]*)\s+([^,\s]*)\s*,\s*"([^"]*)"\s+"([^"]*)"
    

    更新:修改为分割玛丽和约翰

  5. # 5 楼答案

    一种可能的方法是:在,处拆分,然后在space处拆分,或者在spacequotation mark处拆分:

    "John Mary, \"Name=blah;Name=blahAgain\" \"Hand=1,2\"".split(",\\s|[\\s\"]")