我很新的正则表达式。不确定如何执行以下操作:Java字符串/正则表达式替换
用特定值替换“:p_id”。
例如,当我只是想用一个值替换“:p_id1”时,它也用同样的值代替了“:p_id10”,这不是我想要的值。
“:p_id”在他们之前或之后有标点符号也是可能的,例如, “=:p_id1)”
有什么建议吗?
我很新的正则表达式。不确定如何执行以下操作:Java字符串/正则表达式替换
用特定值替换“:p_id”。
例如,当我只是想用一个值替换“:p_id1”时,它也用同样的值代替了“:p_id10”,这不是我想要的值。
“:p_id”在他们之前或之后有标点符号也是可能的,例如, “=:p_id1)”
有什么建议吗?
谢谢!这工作。我之前确实有“\\ b:p_id1 \\ b”,但似乎没有工作。我一定要去阅读一些正则表达式教程! – sb89 2013-05-14 08:55:41
你可以在你的模式结束使用负前瞻。
例如:
Pattern pattern = Pattern.compile(":p_id\\d(?!\\d)");
String example = ":p_id1 :p_id10";
Matcher matcher = pattern.matcher(example);
while (matcher.find()) System.out.println(matcher.group());
输出:
:p_id1
“:p_id”在他们之前或之后有标点符号也是可能的,例如, =:P_ID1 – 2013-05-14 08:46:47
这是我做出的模式:
^[=]{0,1}:p_id1\b[=]{0,1}
此相匹配,例如字符串:
:p_id1
=:p_id1
:p_id1=
但不匹配(例如):
:p_id10
只要去遵循一个正则表达式的教程,它会教你的基础知识。 – Supericy 2013-05-14 08:17:40
提供您实际用于此过程的代码将有助于我们理解您在寻找什么。我还建议看看[这个Java教程](http://docs.oracle.com/javase/tutorial/essential/regex/)。它可以帮助你理解如何自行修复它(自己动手感觉更好) – pn7a 2013-05-14 08:19:13