我需要正则表达式的帮助,我试图将“Inc”替换为“LLC”以获得许多字符串。
我在java中使用了这段代码:
String newValue = newValue.replaceAll("(?i)Inc[^\\w]","LLC");
但结果不正确,更换后删除了一个字符:
Exp:CONSULTANTS,INC。(“ABC”)==> CONSULTANTS,LLC(“ABC”)//“。”被删除了。
请注意我使用[^ \ w]来防止在“include”等句子中替换“inc”。
答案 0 :(得分:8)
如果\b
或^
等字符串中没有特殊文字,则可以()
使用String s = "include inc".replaceAll("(?i)\\binc\\b", "LLC");
System.out.println(s); // (?i) is for case insensitive.
:
inc
如果您使用特殊字符代替^inc
Pattern.quote(s)
,则上述方法将失败。您可以\Q...\E
使用它。
如果有特殊字符,则可以使用引用的文字public static String replaceExact(String str, String from, String to) {
return str.replaceAll("(?<!\\w)\\Q" + from + "\\E(?!\\w)", to);
}
。使用引用文字的实用方法:
Pattern.quote("wor^d")
注意:\\Qwor^d\\E
将返回<div class="input-group">
<asp:TextBox ID="txt_Product" runat="server" CssClass="form-control" placeholder="Product"></asp:TextBox>
<div class="input-group-append">
<asp:LinkButton ID="LinkButton3" runat="server" CssClass="btn btn-outline-primary">
<i class="ICON-copyright"></i>
</asp:LinkButton>
</div>
,与上述正则表达式相同。