繁体   English   中英

如何删除 Java 中具有另一个正则表达式计算的字符串中的最后一个字符?

[英]How can I remove the last character in a String that has another regex computation in Java?

我想从字符串中删除以下字符:<,>,t,d,/ 并在第一次删除后删除最后一个字符。 我想在一个声明中做到这一点。

用于删除 <,>,t,d,/ 的正则表达式:

 String codCIM =  element.toString().replaceAll("[<>,t,d,//]", ""); -WORKS FINE

用于删除 <,>,t,d,/ 和最后一个字符的正则表达式:

String codCIM =  element.toString().replaceAll("[<>,t,d,//].$", ""); -DONT WORK

例如: "dtt>W43451005/dttt>"应该是W4345100
但是我只能实现: W43451005

尝试使用此正则表达式: [<>td/]|.(?=[<>td/]*$)

正则表达式 101


  • [<>td/]匹配目标字符;
  • .(?=[<>td/]*$)匹配结束目标字符序列之前的字符,这基本上是删除所有目标字符后的最后一个字符;

首先,预期的 output 表明应删除由d, t, <, >, /组成的序列,然后必须删除字符串末尾此匹配项之前的字符。

这可以通过以下正则表达式来实现:

System.out.println("dtt>W43451005/dttt>".replaceAll("([<>td/]|.[<>td/]*$)", ""));

Output

W4345100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM