【问题标题】:Need regex to find and replace words from a string需要正则表达式来查找和替换字符串中的单词
【发布时间】:2016-06-06 06:29:46
【问题描述】:

假设我有一个字符串说 "Hello ::2130837661:: stackoverflow, How ::2130837664:: are you?"

我有一个预定义的整数数组列表,例如 [ 2130837661, 2130837662, 2130837663, 2130837664, 2130837665, 2130837666, 2130837667, 2130837668 ]

我想检查给定的字符串是否包含来自该数组列表的整数,它应该用新词替换,比如“EXAMPLE”。

例如上面的字符串(替换后)将是:

“你好,示例stackoverflow,你好吗?”

有什么可行的解决办法吗?

提前致谢。

【问题讨论】:

  • 2130837661 如何映射到示例?
  • 到目前为止你有没有尝试过?
  • @Scary Wombat:EXAMPLE 是替代品
  • 所以如果数组列表中有一个数字(以 :: 开头),那么您将用 EXAMPLE 替换它?
  • 到目前为止你尝试过什么?

标签: java regex


【解决方案1】:

只需遍历ArrayList 并且(我假设您有一个从这些整数到字符串的映射)使用String.replace() 将您的整数替换为相应的替换。

for(Integer i: arrayList)
{
  yourString.replace("::"+i+"::", replacement);
}

【讨论】:

  • 这个性能很差,因为Java返回一个新的字符串,所以不起作用!
  • 看看 OPs 的问题。他有一个由特定整数组成的ArrayList。如果我们只是使用正则表达式中硬编码的整数作为您的解决方案,那么拥有这个ArrayList 有什么意义?如果 Java 返回一个新的String,只需将其分配给原来的String 有什么问题?
  • 我希望,他可以解释正则表达式示例并根据自己的需要进行调整。作为软件开发人员,您应该思考!
  • 或者您可以使用一个好的 ol' Stringbuilder 然后将其转换为您的需要
猜你喜欢
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
相关资源
最近更新 更多