【问题标题】:replaceall REGEX in java替换java中的所有正则表达式
【发布时间】:2012-03-21 15:09:05
【问题描述】:

对 java 完全陌生,我一直在使用 replaceAll 命令中的正则表达式,想知道我所做的方式是否是最好的方式? 我基本上想找到每一个出现的 <Letter_File TIMESTAMP="0000-00-00 00:00" FILECREATOR="XXX" BRAND_ID="0" BRAND_NAME="xxxxxxxxx"> 在我的文件中并将其替换为<Letter_File> 我正在使用以下内容:

str1 = str1.replaceAll("\\<Letter\\_File[a-zA-Z\\_\\s\\=\\\"0-9-\\:\\\"]+\\>","<Letter_File>");>

我想知道的是,这是执行该功能的最佳方式还是可以缩短 REGEX 的方式?

欢迎任何反馈。

谢谢

【问题讨论】:

  • 所以基本上你正在尝试用 在你的 XML 文件中标记对吗?
  • 是的,是的,我基本上想从 标记中删除所有属性,我知道这可能是一种非常愚蠢的做法!

标签: java regex replaceall


【解决方案1】:

怎么样:

str1 = str1.replaceAll("<Letter_File[^>]+>","<Letter_File>");>

【讨论】:

  • 谢谢这个工作正常,只是出于好奇,你能解释一下这是如何工作的吗?我是否正确假设 [^>] 将在 之后查找任何内容?我认为你必须输入它寻找的某些字符,因此我为什么要输入所有这些不同的变体,例如a-zA-Z0-9 等等等等。
  • @Simon.Knott86:[^&gt;] 表示任何不是&gt; 的字符。看看这个网站:regular-expressions.info/charclass.html
  • 非常感谢,我认为这很有帮助,我不确定,因为 ^ 字符在我的理解中也可以表示“开始时”
  • @Simon.Knott86:是的,^ 表示字符串的开头,除非在字符类中它否定类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多