使用正则表达式Java

时间:2018-12-05 16:27:45

标签: java regex

我有几个字符串数据集,我想在其中使用正则表达式替换来替换某些字符组合。我尝试了多种模式,但没有一个有帮助。有人可以指出我正确的模式吗?

例如:

  

你好,[cicuyuv v,] imijmijm

在此字符串中,无论发生何处,我都想用单个",["替换",]"","

public class MainApp {

    public static void main(String[] args) {
        String data = "hello,[cicuyuv v,]imijmijm"
            .replaceAll("[,[\\[]]", ",");

        System.out.println(data);

    }

}

2 个答案:

答案 0 :(得分:1)

您的import sys import csv import xml.dom.minidom document = xml.dom.minidom.parse(sys.argv[1]) print("Exchange,Symbol,Company,Volume,Price,Change") tableElements = document.getElementsByTagName('table') for tr in tableElements[2].getElementsByTagName('tr')[1:]: data = [] for td in tr.getElementsByTagName('td'): for node in td.childNodes: if node.nodeType == node.TEXT_NODE: b = node.nodeValue.replace(',',"") b = b.strip() b = b.replace("(","") b = b.strip(")") b = b.replace("$","") data.append(b) for a in td.getElementsByTagName('a'): for node in a.childNodes: if node.nodeType == node.TEXT_NODE: b = node.nodeValue.replace(',',"") b = b.strip() b = b.strip(")") b = b.split('(') #b = b.replace("$","") data.append(b[1]) data.append(b[0]) print('NASDAQ,'+','.join(data[3:len(data)-1])) 代表一个"[,[\\[]]"模式,该模式与单个字符([,[\[]],(另一个字符类中的[字符类)匹配形成了character class union)。

您可以使用

[\[]

请参见Java demo

在这里,String data = "hello,[cicuyuv v,]imijmijm".replaceAll(",[\\[\\]]", ","); System.out.println(data); // -> hello,cicuyuv v,imijmijm 是一个正则表达式模式,先匹配,[\[\]],然后匹配,[。在Java regex的字符类中使用]]时请务必小心:它们都必须转义(以其他形式,当您在regex101.com或其他类似站点进行测试时,{{ [中的1}}不一定要转义,建议使用Java regex测试站点,例如RegexPlanetJava Regular Expression Tester(无从属关系)。

答案 1 :(得分:0)

System.out.println("hello,[cicuyuv v,]imijmijm".replaceAll(",(\\]|\\[)" , ","));


, matches the character , literally (case sensitive)

Capturing Group (\\]|\\[)

1st Alternative \]
\] matches the character ] literally (case sensitive)

2nd Alternative \[
\[ matches the character [ literally (case sensitive)