字符串我有文本块这样的:剥离前后垂直条|从Java中
|!?:some_text!?:|
|!?some_text!?|
|?:some_text?:!|
..
在任何情况下,我想脱掉|
?
!
和:
(它们不可能一起发生,但是他们处于领先位置和尾随位置),并且只获得some_text
。
我有有|
的Java中的正则表达式引擎,当我使用下列表达式Pattern
要编译类字面上处理问题:
^[?:!\|]+
[?:!\|]+$
字符串我有文本块这样的:剥离前后垂直条|从Java中
|!?:some_text!?:|
|!?some_text!?|
|?:some_text?:!|
..
在任何情况下,我想脱掉|
?
!
和:
(它们不可能一起发生,但是他们处于领先位置和尾随位置),并且只获得some_text
。
我有有|
的Java中的正则表达式引擎,当我使用下列表达式Pattern
要编译类字面上处理问题:
^[?:!\|]+
[?:!\|]+$
也许,你迷惑|
为交替操作(即转义|
在字符类外)和字符类内的字面非转义管|
。
见本IDEONE demo:
String p = "^[?:!|]+|[?:!|]+$";
System.out.println("|!?:some_text!?:|".replaceAll(p, ""));
System.out.println("|!?some_text!?|".replaceAll(p, ""));
System.out.println("|?:some_text?:!|".replaceAll(p, ""));
正则表达式^[?:!|]+|[?:!|]+$
中有3个管道:一个字符类中(间[...]
)它是一个文字管道符号,和它以外,它是一个交替操作。
使用这一行
String str = "|!?:some_text!?:|";
str = str.replaceAll("[:!|?]", "");
我希望它符合标准:)
你没有逃跑的管道在字符类。 –
'^ [?:!| + | [?:!|] + $'应该就够了。 –
请参阅[IDEONE演示](http://ideone.com/sFK9yp) –