首页 > 其他分享 >正则可视化在线工具-更直观地理解和调试正则表达式的利器

正则可视化在线工具-更直观地理解和调试正则表达式的利器

时间:2023-11-08 16:37:40浏览次数:40  
标签:const 正则表达式 rule 正则 可视化 value 匹配 ref

在工作和学习中,正则表达式是一种强大的工具,用于处理和分析文本数据。它可以帮助我们在海量数据中快速搜索、匹配和提取所需的信息。然而,正则表达式的语法复杂,很多人在编写和调试时可能会遇到困难。


为了解决这个问题,我决定自己编写一个正则工具。这个工具旨在提供一个直观且用户友好的界面,帮助用户更轻松地编写、测试和调试正则表达式。通过可视化的方式,用户可以清晰地看到正则表达式的结构和匹配结果,从而更好地理解和调试自己的正则表达式。

我相信这个正则工具将极大地提高我的工作效率和学习体验。它将成为我在处理文本数据时的得力助手,帮助我更快速、准确地完成各种正则操作。我期待着在工作和学习中充分利用这个工具,为我带来更多的便利和效益。


工具在线地址:https://amd794.com/regularGraph

工具演示视频:https://www.bilibili.com/video/BV17y4y1w7Qi/


正则可视化工具是一种用于帮助用户理解和调试正则表达式的工具。正则表达式是一种强大的模式匹配工具,用于在文本中搜索、替换和提取特定模式的字符串。


正则可视化工具提供以下功能:

  1. 正则表达式编辑器:允许用户输入和编辑正则表达式。
  2. 文本输入框:用户可以输入需要匹配的文本。
  3. 匹配结果展示:显示正则表达式在文本中的匹配结果,通常以高亮方式展示。
  4. 错误提示:如果正则表达式存在错误,工具可以提供错误提示和建议修复。
  5. 正则表达式解释:工具可以解释正则表达式的含义和匹配规则,帮助用户理解其工作原理。
  6. 替换功能:允许用户在文本中进行替换操作,将匹配的字符串替换为指定的内容。
  7. 可视化分组:对于复杂的正则表达式,工具可以将匹配的分组可视化展示,以便用户更好地理解和调试。


正则可视化工具通常以图形界面的形式呈现,使用户可以直观地操作和观察正则表达式的匹配过程。这些工具可以帮助用户快速验证和调试正则表达式,提高开发效率。


正则可视化在线工具-更直观地理解和调试正则表达式的利器_正则表达式


正则可视化在线工具-更直观地理解和调试正则表达式的利器_正则表达式_02

正则可视化在线工具-更直观地理解和调试正则表达式的利器_html_03


相关代码

html布局:

<div class="match-group">
      <el-input
          v-model="inputText"
          @input="handleInput"
          :rows="4"
          clearable
          class="input"
          type="textarea"
          placeholder="input"
      />
      <div class="center">
        <el-text
            v-html="matchText"
            class="input"
        />
      </div>
      <el-input
          v-model="outText"
          :rows="4"
          clearable
          readonly
          class="input"
          type="textarea"
          placeholder="output"
      />
      <el-input v-model="replaceText" :placeholder="currentLang.repaceTips" clearable>
        <template #append>
          <el-button type="danger" @click="handleReplaceText">
            {{ currentLang.replace }}
          </el-button>
        </template>
      </el-input>

      <div class="center">
        <el-text
            v-html="outReplaceText"
            class="input"/>
      </div>
    </div>

1. 定义3个输入框做数据输入和输出

const inputText = ref('')
const matchText = ref('')
const outText = ref('')
const replaceText = ref('')
const outReplaceText = ref('')

2. 给匹配结果添加高亮显示和和输出正则匹配结果

const handleInput = () => {
  const replacement = '<mark>$&</mark>'
  const rule = new RegExp(Re.value, GotTText.value)
  console.log('rule =====>', rule)
  outText.value = inputText.value.match(rule)?.join('\n')
  matchText.value = replace(replacement)
  console.log(matchText.value)
}

注意:如果要保留输入的换行符需要将\n替换为html的br标签来保证输出的匹配结果换行

// todo 正则匹配
const inputText = ref('')
const matchText = ref('')
const outText = ref('')
const replaceText = ref('')
const outReplaceText = ref('')

const replace = (replacement) => {
  const rule = new RegExp(Re.value, GotTText.value)
  let result = ''
  if (GotTText.value === 'g') {
    result = inputText.value.replaceAll(rule, replacement)
  } else {
    result = inputText.value.replace(rule, replacement).replace(/\n/g, '<br>')
  }
  return result.replace(/\n/g, '<br>')
}

const handleInput = () => {
  const replacement = '<mark>$&</mark>'
  const rule = new RegExp(Re.value, GotTText.value)
  console.log('rule =====>', rule)
  outText.value = inputText.value.match(rule)?.join('\n')
  matchText.value = replace(replacement)
  console.log(matchText.value)
}

const handleReplaceText = () => {
  outReplaceText.value = replace(replaceText.value)
}

// 监听
watch([GotTText, Re], (newValue, oldValue) => {
  handleInput()
})

给匹配结果添加高亮的时候可以用css来定制,我这里用的最简单的方法,就是用内置的mark标签。


标签:const,正则表达式,rule,正则,可视化,value,匹配,ref
From: https://blog.51cto.com/u_16348566/8256102

相关文章

  • 汽车制造可视化工厂建设解决方案
    一、行业背景汽车生产制造主要有四大工艺,即:冲压、焊接、涂装和总装,每一个生产环节都是一个系统工程,都需要有较高的作业环境条件并进行严格的质量和工艺管理,任何一个工艺在开线生产期间出现问题,都会影响整个生产线的正常运转,造成巨大损失。因此在汽车生产制造行业,我们针对生产制造过......
  • 要求匹配以下16进制颜色值,正则表达式可以为:
    要求匹配以下16进制颜色值,正则表达式可以为:#ffbbad#Fc01DF#FFF#ffE/#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g十六进制颜色值满足某些条件可以简写。color:#FF33AA;上述颜色值可以进行简写,因为每两位都是重复的,完全可以省略掉一半。color:#f3a;上面是十六进制颜色值推荐简......
  • Python正则表达式入门
    正则表达式文本查找实例正则表达式主要是让使用者指定要查找的“模式”,而不是死板地查找固定的内容。不用正则表达式查找内容例如我们要查找长沙区号的电话号码,那么我们就需要知道特征,比如0731-84802110,0731是长沙的区号,紧接着就是-短横,然后是8位数字,那么我们就必须要符合这样......
  • DevExpress WinForms桑基图组件,开创大数据流可视化新方式!
    界面控件DevExpressWinForms能帮助开发者创建信息丰富的WinForms应用程序,使用其SankeyDiagram(桑基图)控件,您可以非常轻松地可视化大数据的数据流。DevExpressWinForms有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用......
  • 正则表达式
    概念:正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。这些模式被用于RegExp的exec和test方法,以及String的match、matchAll、replace、search和split方法。创建正则表达式两种方法:字面量方式,构造函数方式//字面量方式,其由包含......
  • 正则表达式-r'\[.*\]'和r'[.*]'的区别
    则表达式r'[.*]'实际上会匹配包含任何一个字符*或.或*的字符串。这不是想要的结果。希望匹配方括号[]中的任意字符,并且要匹配多个字符。要匹配方括号[]中的任意字符,并匹配多个字符,你应该使用r'\[.*\]',其中\[匹配左方括号,.*匹配任意字符(包括数字、字母等等),然后\]......
  • Java智慧工地管理平台可视化大数据建造工地APP源码
    一、智慧工地概述智慧工地将更多人工智能、传感技术、虚拟现实等高科技技术融入到建筑、机械、人员穿戴设施、场地进出关口等各类物体中,围绕人、机、料、法、环等各方面关键因素,彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式,智慧工地主要以物联网、移......
  • python3-TK实现一个可视化界面,选中文件夹可以计算文件夹下文件的数量
    借助Python3中Tkinter库,实现一个可视化的界面,通过界面选择文件夹,可以计算文件夹下文件的数量,嵌套文件夹的情况依旧可以计算。importosimporttkinterastkfromtkinterimportfiledialogdefcount_files_in_folder(folder_path):file_count=0forroot,dirs,......
  • 数据可视化 - 使用swiper制作滚动表格[vue3]
    html部分1<divclass="scroll-table">2<divclass="scroll-table-header">3<tableclass="scroll-table-header__table">4<colgroup>5<col......
  • 正则可视化在线工具-更直观地理解和调试正则表达式的利器
    在工作和学习中,正则表达式是一种强大的工具,用于处理和分析文本数据。它可以帮助我们在海量数据中快速搜索、匹配和提取所需的信息。然而,正则表达式的语法复杂,很多人在编写和调试时可能会遇到困难。为了解决这个问题,我决定自己编写一个正则工具。这个工具旨在提供一个直观且用户友......