Java 提取单引号中的字符串数据
我正在使用java 7,我的数据流包含以下行:Java 提取单引号中的字符串数据,java,regex,Java,Regex,我正在使用java 7,我的数据流包含以下行: SENDER='CALTRANS' SENDER='BIGO' SENDER='FIO' .. .. 我只想提取单引号中的数据。i、 e CALTRANS BIGO FIO 。。。 关于正则表达式有什么建议吗?您可能会使用正则表达式: ^SENDER='([^']+)'$ 使用多行标志。此正则表达式匹配行的开头,后跟文本SENDER=',后跟任何非单引号的内容,后跟单引号,然后是行的结尾 String regex = "(?m)^SENDE
SENDER='CALTRANS'
SENDER='BIGO'
SENDER='FIO'
..
..
我只想提取单引号中的数据。i、 e
CALTRANS
BIGO
FIO
。。。
关于正则表达式有什么建议吗?您可能会使用正则表达式:
^SENDER='([^']+)'$
使用多行标志。此正则表达式匹配行的开头,后跟文本SENDER='
,后跟任何非单引号的内容,后跟单引号,然后是行的结尾
String regex = "(?m)^SENDER='([^']+)'$";
因此,您可以打印捕获组1中的所有匹配项,如下所示:
Pattern p = Pattern.compile( regex);
Matcher m = p.matcher(inputText); // inputText = "SENDER='CALTRANS'... etc"
while(m.find()) {
System.out.println(m.group(1));
}
您可能会使用正则表达式:
^SENDER='([^']+)'$
使用多行标志。此正则表达式匹配行的开头,后跟文本SENDER='
,后跟任何非单引号的内容,后跟单引号,然后是行的结尾
String regex = "(?m)^SENDER='([^']+)'$";
因此,您可以打印捕获组1中的所有匹配项,如下所示:
Pattern p = Pattern.compile( regex);
Matcher m = p.matcher(inputText); // inputText = "SENDER='CALTRANS'... etc"
while(m.find()) {
System.out.println(m.group(1));
}
如果等号左侧的值可以不是发送方
,则类似于^[^=]+='([^']+')$
的内容也可能有用。这将匹配任何没有等号的东西,后面是等号,后面是撇号中不包含撇号的东西。呸。这让我想起了一句话,你认为你有问题,然后说“我将用regexp解决它”,现在你有两个问题。(尽管必须承认,对于这种情况,它们非常有用。)如果等号左侧的值可以不是发送方
,则类似于^[^=]+='([^']+)'$
的内容也可能有用。这将匹配任何没有等号的东西,后面是等号,后面是撇号中不包含撇号的东西。呸。这让我想起了一句话,你认为你有问题,然后说“我将用regexp解决它”,现在你有两个问题。(尽管不可否认,对于这种情况,它们非常有用。)