Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式:标记化<;开放>&书信电报;苏格兰游戏>&书信电报;炸肝攻击>;_Java_Regex - Fatal编程技术网

Java 正则表达式:标记化<;开放>&书信电报;苏格兰游戏>&书信电报;炸肝攻击>;

Java 正则表达式:标记化<;开放>&书信电报;苏格兰游戏>&书信电报;炸肝攻击>;,java,regex,Java,Regex,如何使用正则表达式获取字符串的单个标记。因此,输出应为以下3个字符串: 开口 苏格兰游戏 炸肝 编辑: 这不是一个合适的xml,它非常简单 String str = "<opening><scotch-game><fried-liver-attack>"; String[] tokens = str.substring(1, str.length() - 1).split("><"); String str=”“; String[

如何使用正则表达式获取
字符串的单个标记。因此,输出应为以下3个字符串:

  • 开口
  • 苏格兰游戏
  • 炸肝
  • 编辑:

    这不是一个合适的xml,它非常简单

        String str = "<opening><scotch-game><fried-liver-attack>";
        String[] tokens = str.substring(1, str.length() - 1).split("><");
    
    String str=”“;
    String[]tokens=str.substring(1,str.length()-1)。拆分(“>这可能会有帮助

    public class PracticeOne 
    {
    public static void main(String args[])
    {
        String s="<opening><scotch-game><fried-liver-attack>";
        StringTokenizer st=new StringTokenizer(s,"<>");
        ArrayList<String> al=new ArrayList<String>();
        while(st.hasMoreElements())
        {
            String element=(String)st.nextElement();
            if(!element.equals(""))
                al.add(element);
        }
        System.out.println(al);
    }
    }
    
    公共课堂实践一
    {
    公共静态void main(字符串参数[])
    {
    字符串s=“”;
    StringTokenizer st=新的StringTokenizer,“”;
    ArrayList al=新的ArrayList();
    而(st.hasMoreElements())
    {
    String元素=(String)st.nextElement();
    如果(!element.equals(“”)
    al.添加(元素);
    }
    系统输出打印项次(al);
    }
    }
    
    Pangea,你想用regex做什么?这段代码可以做你想做的

    List<String> matchList = new ArrayList<String>();
    try {
        Pattern regex = Pattern.compile("<([^>]*?)>");
        Matcher regexMatcher = regex.matcher(subjectString);
        while (regexMatcher.find()) {
            matchList.add(regexMatcher.group(1));
        } 
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
    }
    
    List matchList=new ArrayList();
    试一试{
    Pattern regex=Pattern.compile(“]*?)>”;
    Matcher regexMatcher=regex.Matcher(subjectString);
    while(regexMatcher.find()){
    添加(regexMatcher.group(1));
    } 
    }捕获(模式语法异常){
    //正则表达式中的语法错误
    }
    
    模式本身非常简单:
    ]*?)>

    我们匹配一个开始的
    ]*?
    最后,为了更好地衡量,我们匹配一个结束的
    ,以确保我们有一个完整的代币

    Java代码只是构建了一个包含所有Group1捕获的列表,这正是您想要的

    List<String> matchList = new ArrayList<String>();
    try {
        Pattern regex = Pattern.compile("<([^>]*?)>");
        Matcher regexMatcher = regex.matcher(subjectString);
        while (regexMatcher.find()) {
            matchList.add(regexMatcher.group(1));
        } 
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
    }
    

    请注意,这将不能很好地处理
    。这将是另一个讨论。

    Braj-我正在检查我们是否可以使用正则表达式执行此操作。我知道我可以使用拆分和字符串函数找到解决方案。+1尝试使用thoughOK,让我为您提供它。
    string.split()
    接受正则表达式。
    >当然。我正在查看是否有一种模式,用于以通用方式标记被删除的文本……而无需删除开头和结尾