Java 仅在某些输入上附加内容的正则表达式
仅当单词前面没有附加其他字符串(此处Java 仅在某些输入上附加内容的正则表达式,java,regex,Java,Regex,仅当单词前面没有附加其他字符串(此处Input!)时,我如何才能将字符串(此处Calc!)仅附加到某些单词(此处B(后跟数字),例如B1/B2…)上。例子 B1->Calc!B1 和输入!B1->输入!B1(此处无变化) 您可以替换此匹配项: (? 有了这个替代品: Calc! 更多详情: (?匹配前面没有输入的位置! (?=B\d+匹配一个位置,该位置后跟B\d+,或B和至少一个数字 它们一起在您要插入的位置匹配Calc!这应该可以: String output = input.repla
Input!
)时,我如何才能将字符串(此处Calc!
)仅附加到某些单词(此处B
(后跟数字),例如B1/B2…
)上。例子
B1->Calc!B1
和输入!B1->输入!B1
(此处无变化)
您可以替换此匹配项:
(?
有了这个替代品:
Calc!
更多详情:
(?匹配前面没有输入的位置!
(?=B\d+
匹配一个位置,该位置后跟B\d+
,或B
和至少一个数字
它们一起在您要插入的位置匹配Calc!
这应该可以:
String output = input.replaceAll("(?<![!])B[0-9]+", "Calc!$0");
String output=input.replaceAll(“(?你能重新格式化以便更容易阅读吗?这里有什么问题吗?定义特殊字符串。我的意思是“输入!”,正如我在问题中提到的。我看不出第一个输入和输出之间有任何相似之处。你能更简单地解释一下吗?谢谢!我真的需要了解正则表达式是如何工作的。这让我很困惑。谢谢你的帮助和帮助如果你需要关于正则表达式的帮助,我强烈推荐
String output = input.replaceAll("(?<![!])B[0-9]+", "Calc!$0");
(?<![!])B[0-9]+
^^^^^^ ^ ^ ^
| +--+--+--- Letter "B"
| +--+--- Followed by a digit
| +--- Repeated one or more times
+------------- Unless preceded by an exclamation point