我正在寻找一个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/