繁体   English   中英

如何查找表达式并将其替换为特定文本?

[英]How to find an expression and replace it with certain text?

我有一个 xml 文件,在句子中间带有标记。 例如:#his/her_caps# 测试完成。

我想在 xml 文件中搜索任何 #(text)# 标记并将其替换为其适当的代词,因此我将上面的标记替换为 His 或 Her。 如何搜索#(text)# 表达式?

我不明白如何使用标记器,如果那是我要使用的,并且不确定如何为此正确使用正则表达式。

我正在完成一个别人开始的项目,这就是他们所拥有的,但他们无法让它发挥作用。 我只想知道如何在 xml 文件中搜索标签。

尝试一:

File inputXML = new File("template.xml"); // creates new input file
        DocumentBuilderFactory parser = DocumentBuilderFactory.newInstance(); // new instance of doc builder
        DocumentBuilder dParser = parser.newDocumentBuilder(); // calls it
        Document doc = dParser.parse(inputXML); // parses file
        doc.getDocumentElement().normalize();

        NodeList pList = doc.getElementsByTagName("Verbiage"); // gets element by tag name and places into list to begin parsing

        int gender = 1; // gender has to be taken from the response file, it is hard coded for testing purposes
        //System.out.println("----------------------------"); // new line

        // loops through the list of Verbiage tags
        for (int temp = 0; temp < pList.getLength(); temp++) {
            Node pNode = pList.item(0); // sets node to temp

            if (pNode.getNodeType() == Node.ELEMENT_NODE) { // if the node type = the element node
                Element eElement = (Element) pNode;
                NodeList pronounList = doc.getElementsByTagName("pronoun"); // gets a list of pronoun element tags

                if (gender == 0) { // if the gender is male

                    int count1 = 0;
                    while (count1 < pronounList.getLength()) {

                        if ("#resp_he/she_lc#".equals(pronounList.item(count1).getTextContent())) {
                            pronounList.item(count1).setTextContent("he");
                        }

                        if ("#resp_he/she_caps#".equals(pronounList.item(count1).getTextContent())) {
                            pronounList.item(count1).setTextContent("He");
                        }

                        if ("#resp_his/her_lc#".equals(pronounList.item(count1).getTextContent())) {
                            pronounList.item(count1).setTextContent("his");
                        }
                        if ("#resp_his/her_caps#".equals(pronounList.item(count1).getTextContent())) {
                            pronounList.item(count1).setTextContent("His");
                        }

                        if ("#resp_him/her_lc#".equals(pronounList.item(count1).getTextContent())) {
                            pronounList.item(count1).setTextContent("him");
                        }
                        count1++;
                    }
                    pNode.getNextSibling();

                } else if (gender == 1) { // female
                    int count = 0;
                    while (count < pronounList.getLength()) {

                        if ("#he/she_lc#".equals(pronounList.item(count).getTextContent())) {
                            pronounList.item(count).setTextContent("she");
                        }

                        if ("#he/she_caps#".equals(pronounList.item(count).getTextContent())) {
                            pronounList.item(count).setTextContent("She");
                        }

                        if ("#his/her_lc#".equals(pronounList.item(count).getTextContent())) {
                            pronounList.item(count).setTextContent("her");
                        }
                        if ("#his/her_lc#".equals(pronounList.item(count).getTextContent())) {
                            pronounList.item(count).setTextContent("Her");
                        }

                        if ("#him/her_lc#".equals(pronounList.item(count).getTextContent())) {
                            pronounList.item(count).setTextContent("her");
                        }
                        count++;
                    }
                    pNode.getNextSibling();
                }
            }
        }

在记事本++中使用正则表达式

^#.{0,}#$ 应该找到 # 之间的所有内容

虽然不记得 # 是否需要转义(#)。 我不这么认为。

此外,如果您需要专门找到他或她,您可以添加。 ^#.{0,}他的。{0,}#$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM