我有两个问题。
1:
String = xx yy **
我想删除“xx”,因此String变为=“yy * ”(xx / yy是固定的,* 可以是任何东西) 我试过这样的东西,但它不起作用:
string.replaceall("^(xx )$", "");
这不应该用“”替换“xx”的第一次出现吗?
求助(卢卡斯)
2:
String = xx yy **
我想删除“yy **”,以便String变为=“xx” 我认为这样的事情,但由于第一次没有用,我认为这也不会。
string.replaceall("^( yy)*$", "");
未解
我实际上把这个说得不够充分,
xx应为**
所以xx没有修复
** yy ** 应该成为**这是第一个**
答案 0 :(得分:3)
在这两种情况下,您在尝试替换之前和之后都使用^
和$
。这会尝试将整个字符串与要删除的位匹配。这就是为什么它没有删除任何东西。
如果您真的只想替换xx
的第一次出现,您应该考虑创建一个Pattern
,将其与文本进行匹配,并使用{{ 1}}执行替换。
答案 1 :(得分:0)
试试问题1:
string.replaceFirst("^xx ", "");
第二个:
string.replaceFirst(" yy .*$", "");
编辑: 如果正则表达式不是必须的,我们可以将它用于第二个:
string.substring(0, string.indexOf(" yy");
EDIT2:如果'\ n'将包含在字符串中,则适用于第二个:
string.replaceFirst(" yy [\\w\\W]*$", "");