gpt4 book ai didi

java - 在动态字符串中形成正确的正则表达式

转载 作者:行者123 更新时间:2023-12-01 15:39:41 25 4
gpt4 key购买 nike

我有一个 FileInputStream,它读取一个文件,该文件在某处包含一个字符串子集,如下所示:

...
OperatorSpecific(XXX)
{
Customer(someContent)
SaveImage()
{
...

我想识别字符串的 Customer(someContent) 部分,并将括号内的 someContent 切换为其他内容。

someContent 将是一个动态参数,并将包含一个可能包含 5-10 个字符的字符串。

我以前使用过 regEx,比如一两次,但我觉得在这样的上下文中,我不知道括号内的值是什么,我不知道应该如何表达它。 ..

总之,我希望返回一个字符串,其中在 Customer 括号内包含我的 someContent 值。

有人对如何完成这项工作有什么好主意吗?

最佳答案

试试这个(在 java 中使用双转义反斜杠!)

(?<=Customer\()[^\)]*

并替换为您的内容。

查看here at Regexr

(?<=Customer\()是看后面的断言。它在每个位置检查左侧是否有“Customer(”),如果是,则在右侧匹配所有不是“)”且带有 [^\)]* 的字符。 ,这就是将被替换的部分。

一些有效的java代码

Pattern p = Pattern.compile("(?<=Customer\\()[^\\)]*");
String original = "Customer(someContent)";
String Replacement = "NewContent";

Matcher m = p.matcher(original);
String result = m.replaceAll(Replacement);

System.out.println(result);

这将打印

Customer(NewContent)

关于java - 在动态字符串中形成正确的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8270401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com