Java正则表达式将 "n' t"转换为 "not"

标签 java regex replace regex-negation text-parsing

我正在寻找一个java正则表达式来替换模式的任何字符串, (a-z)+n't(单词)not_word

例如:

 "doesn't like" to "not_like"
 "I don't like" to "i not_like"
 "I don't like having dinner now" to "I not_like having dinner now"

我尝试了很多方法都没有成功。

最佳答案

您需要将(a-z)更改为class character [a-z],如果您想确定 [a-z]+n't 部分之后还有其他单词,您可以

  • ( ) 括号中添加 \\S+ - 非空格字符 - 并使用此 group替换 - 您可以使用 $x 来完成,其中 x 是组号(在您的情况下可能是 $1)
  • 使用look-ahead机制 (?=\\S+) 因此这部分不会包含在匹配中,但必须出现在 [a-z]+n't 之后。

现在要替换您的数据,您可以使用例如这样的内容

String replacedString = yourString.replaceAll("yourRegex","yourReplacemet");

关于Java正则表达式将 "n' t"转换为 "not",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18393332/

相关文章:

javascript - 在正则表达式中查找加号

ruby - 正则表达式提取不同 URL 的最后数字部分

python - 用字符串中的单词替换单词

php - 用PHP替换数组中的字符串

java - ModelAndView 的 .getJSON 404 错误

java - 在Java中用Set中的另一个元素替换现有元素

python - 如何在 SQLAlchemy 中将多个正则表达式合并为一个?

Jquery 数组查找并替换部分匹配的条目

java - write()方法如何输出一个字符

Java GUI JPanel 不工作