下面的正则表达式应该怎么写??在线等。。。。拜托各位大神啦

interInfo.middNode(buff,"卡号",trade.text_借记卡号.getText());
如何用正则表达式匹配上面语句的双引号里面的内容,比如卡号;
如何匹配上面语句的trade.后面的内容,比如text_借记卡号.getText()。

阅读 2.8k
2 个回答
package com.company;


import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegExpDemo {


    public static void main(String[] args) {
        String[] data = {
                "interInfo.middNode(buff,\"卡号\",trade.text_借记卡号.getText());\n",
                "interInfo.middNode(buff,\"1234566790019\",trade.text_1234567890.getText());\n",
                "interInfo.middNode(buff,\"abcdefg\",trade.text_hijklmn.getText());\n",
        };


        Pattern patternCardNumber = Pattern.compile("\"(\\w+)\"", Pattern.UNICODE_CHARACTER_CLASS);
        Pattern patternDebitCardNumber = Pattern.compile("trade.text_(\\w+).getText\\(\\)", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher matcherCardNumber = null;
        Matcher matcherDebitCardNumber = null;
        for (String str: data) {
            matcherCardNumber = patternCardNumber.matcher(str);
            while (matcherCardNumber.find()) {
                System.out.println(matcherCardNumber.group(0));
                System.out.println(matcherCardNumber.group(1));
            }
            matcherDebitCardNumber = patternDebitCardNumber.matcher(str);
            while (matcherDebitCardNumber.find()) {
                System.out.println(matcherDebitCardNumber.group(0));
                System.out.println(matcherDebitCardNumber.group(1));
            }
            System.out.println();
        }
    }

}

output:

"卡号"
卡号
trade.text_借记卡号.getText()
借记卡号

"1234566790019"
1234566790019
trade.text_1234567890.getText()
1234567890

"abcdefg"
abcdefg
trade.text_hijklmn.getText()
hijklmn

."(.)",trade\.(.*)\);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题