[英]Strip off leading and trailing vertical bar | from string in Java
我有很多這樣的文字:
|!?:some_text!?:|
|!?some_text!?|
|?:some_text?:!|
..
在所有情況下,我都想脫掉|
?
!
和:
它們不可能一起出現,但是它們處於前導和尾隨位置),並且僅獲得some_text
。
我有問題|
當我使用以下表達式在Pattern
類中進行編譯時,由Java中的正則表達式引擎按字面處理:
^[?:!\|]+
[?:!\|]+$
也許,你分不清|
作為交替操作者(即非轉義|
字符類外)和文字未逸出管|
在角色類中。
觀看此IDEONE演示 :
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("[:!|?]", "");
我希望它符合標准:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.