`
wsmajunfeng
  • 浏览: 498215 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一个java测试正则表达式的工具

 
阅读更多
import javax.swing.*;  
import javax.swing.text.DefaultHighlighter;  
import javax.swing.text.BadLocationException;  
import java.awt.BorderLayout;  
import java.awt.Font;  
import java.awt.HeadlessException;  
import java.awt.Color;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
import java.util.regex.Pattern;  
import java.util.regex.Matcher;  
   
/** 
 * 测试 Java 正则表达式 
 */  
public class RegTester {  
   
    public static void main(String[] args) {  
        try {  
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
   
        new RegTesterFrame().setVisible(true);  
    }  
}  
   
class RegTesterFrame extends JFrame {  
   
    private JTextField textbox = new JTextField();  // 包含测试文本的文本域  
       
    private JTextArea textarea = new JTextArea();   // 包含正则表达式的文本框  
   
    private RegTesterFrame thisFrame = this;  
       
    private DefaultHighlighter.DefaultHighlightPainter highlightPainter =  
            new DefaultHighlighter.DefaultHighlightPainter(Color.green);  
   
    // 构造方法  
    RegTesterFrame() throws HeadlessException {  
        super("测试 Java 正则表达式");  
        setSize(500, 300);  
        setLocation(300, 100);  
        setDefaultCloseOperation(EXIT_ON_CLOSE);  
   
        setupComponents();  
    }  
   
    // 初始化控件  
    private void setupComponents() {  
        setupBorder();  
   
        JPanel topPanel = new JPanel(new BorderLayout(5, 0));  
        this.add(topPanel, BorderLayout.NORTH);  
        setupTopPanel(topPanel);  
   
        JPanel centerPanel = new JPanel(new BorderLayout());  
        this.add(centerPanel, BorderLayout.CENTER);  
        setupCenterPanel(centerPanel);  
    }  
   
    // 给窗体面板加上边框  
    private void setupBorder() {  
        JPanel panel = new JPanel(new BorderLayout(5, 5));  
        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));  
        this.setContentPane(panel);  
    }  
   
    // 文本域面板  
    private void setupCenterPanel(JPanel panel) {  
        textarea.setFont(new Font(Font.DIALOG_INPUT, 0, 12));  
        panel.add(new JScrollPane(textarea));  
    }  
   
    // 上方面板  
    private void setupTopPanel(JPanel panel) {  
        textbox.setFont(new Font(Font.DIALOG_INPUT, 0, 12));  
        panel.add(textbox, BorderLayout.CENTER);  
   
        JButton button = new JButton("测试");  
        button.addActionListener(new ActionListener() {  
            public void actionPerformed(ActionEvent e) {  
                checkRegularExpression();  
            }  
        });  
        panel.add(button, BorderLayout.EAST);  
        panel.add(new JLabel("正则表达式:"), BorderLayout.WEST);  
    }  
   
    // 检查正则表达式  
    private void checkRegularExpression() {  
        textarea.getHighlighter().removeAllHighlights();  
   
        String reg = textbox.getText();  
        String text = textarea.getText();  
   
        Pattern p = Pattern.compile(reg);  
        Matcher m = p.matcher(text);  
        if (m.find()) {  
            thisFrame.setTitle("文本符合表达式。");  
            highlightMatches(m);  
        } else {  
            thisFrame.setTitle("文本不符合表达式。");  
        }  
    }  
   
    // 将符合正则表达式的部分高亮显示  
    private void highlightMatches(Matcher m) {  
        highlight(m);  
        int start = m.end();  
        while (m.find(start)) {  
            highlight(m);  
            start = m.end();  
        }  
    }  
   
    private void highlight(Matcher m) {  
        try {  
            textarea.getHighlighter().addHighlight(m.start(), m.end(), highlightPainter);  
        } catch (BadLocationException e) {  
            e.printStackTrace();  
        }  
    }  
} 
 

 

分享到:
评论

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    Java使用正则表达式提取XML节点内容的方法示例是一个非常有用的技术,可以帮助开发者快速提取XML节点内容。但是,为了更好地掌握这个技术,开发者需要具备一定的基础知识和经验,并且需要具备一定的实践经验。

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    Java正则表达式测试工具

    - 实时测试正则表达式的匹配效果,查看是否符合预期。 - 检查正则表达式的语法错误,及时修正。 - 试验不同的正则表达式选项,如全局匹配(g)、多行模式(m)等。 - 进行复杂的文本替换,比如批量替换某个模式的...

    测试正则表达式软件

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于...测试正则表达式的软件是开发者的好帮手,它们提供了一个友好的界面来实践和调试正则表达式,使得这个过程变得更加直观和便捷。

    Java根据正则表达式生成字符串—Xeger,automaton

    Xeger是一个方便的工具,可以直接根据正则表达式生成随机字符串,适合测试和调试。而automaton(有限状态自动机)则为我们提供了更底层的控制,适用于那些需要深入理解正则表达式内部机制的复杂情况。这两个工具在...

    java使用正则表达式判断手机号的方法示例

    7. 正则表达式在线测试工具:文章中也提供了两个在线测试工具,一个是JavaScript正则表达式在线测试工具,另一个是正则表达式在线生成工具,这两个工具可以帮助开发者测试和生成正则表达式。 8. java正则表达式技巧...

    Java Swing版的正则表达式测试工具

    Java Swing版的正则表达式测试工具是一款专为Java开发者设计的实用软件,它利用Swing作为GUI库,提供了一个直观、便捷的平台,用于学习和测试正则表达式。这款工具无需任何额外的安装步骤,只需具备Java环境,就可以...

    java Xeger 根据正则表达式生成满足的随机数据

    Java中的Xeger是一个非常有用的工具,它允许开发者根据指定的正则表达式生成随机的数据。Xeger是基于Java的org.apache.commons.text.RandomStringGenerator类和org.apache.commons.lang3.RandomStringUtils库的一个...

    JAVA正则测试工具

    Java语言内置了强大的正则表达式支持,但直接在代码中调试和测试正则表达式可能会耗费大量时间和精力。这款工具就是为了简化这个过程,提供一个直观的图形用户界面(GUI),使得开发者可以即时看到正则表达式的匹配...

    好用的正则表达式测试工具

    描述中的“用于测试正则表达式的正确性,很好用的工具”进一步强调了这种工具的主要功能和优势。它能够帮助用户在不实际集成到代码中时验证正则表达式的正确性,避免因错误的正则导致的程序问题。此外,“很好用”...

    正则表达式工具包

    "正则表达式工具包"显然是一款专为正则表达式开发和测试设计的应用程序,它提供了全面的功能,以满足所有正则表达式相关的开发需求。 RegexBuddy4.exe 是这个工具包的主要程序文件,很可能是一个名为 "RegexBuddy" ...

    PB实现的正则表达式

    例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...

    正则表达式工具The Regulator

    《正则表达式工具The Regulator深度解析》 在信息技术领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据提取、验证、替换等任务。The Regulator是一款专为正则表达式设计的高效工具...

    正则表达式自动生成器 V2.0.0.1 官方多语版

    正则表达式自动生成器V2.0.0.1是一款强大的工具,旨在帮助用户方便快捷地构建和测试正则表达式。它提供了多语言支持,使得不同地区的用户都能无障碍地使用。在IT领域,正则表达式是进行文本处理、数据验证和搜索替换...

    JAVA 正则表达式测试器

    Java正则表达式测试器是一款强大的工具,专为在Java环境中进行正则表达式测试而设计。它使得开发者能够在编写和调试正则表达式时节省大量时间和精力,避免了传统方式下反复试错的繁琐过程。这个工具的核心功能是提供...

    只验证数字和字母的正则表达式

    本文将围绕一个特定的正则表达式 `/^([A-Za-z0-9])+$/` 展开讨论,该表达式主要用于验证输入字符串是否仅包含数字和字母。 #### 正则表达式解析 该正则表达式 `/^([A-Za-z0-9])+$/` 可以被细分为几个关键部分进行...

    正则表达式测试软件

    例如,"abc123"就是一个简单的正则表达式,匹配包含这些字符的字符串。 2. **特殊字符**:如`\d`代表数字,`\w`代表字母或数字,`\s`代表空白字符。例如,`\d+\w+`可以匹配一个由数字开头,后跟一个或多个字母的...

    正则式工具(自动生成正则表达式)

    "正则式工具(自动生成正则表达式)" 提供了一个便捷的平台,帮助用户自动化创建和测试正则表达式。这样的工具通常具有以下功能: 1. **自动生成**:用户输入示例文本或描述,工具会根据输入生成对应的正则表达式。...

    正则表达式验证工具Java

    本工具"正则表达式验证工具Java"专注于帮助开发者测试和验证他们的正则表达式,确保其能够按预期工作。 该工具的核心功能在于提供了一个用户友好的界面,允许输入正则表达式并应用到特定的文本上,以检查匹配结果。...

Global site tag (gtag.js) - Google Analytics