[英]regex to find substring between special characters
我在Java中遇到了這個問題。
我的數據字符串包含&
和;
之間的實體;
例如
&Text.ABC;, &Links.InsertSomething;
這些實體可以是我們擁有的ini文件中的任何內容。
我需要在輸入字符串中找到這些字符串並將其刪除。 在輸入字符串中可能沒有這些實體,也可能沒有一個或多個。
我正在嘗試使用正則表達式來進行模式匹配和失敗。
誰能建議這個問題的正則表達式?
謝謝!
這是正則表達式:
"&[A-Za-z]+(\\.[A-Za-z]+)*;"
它以匹配字符&
開頭,后跟一個或多個字母(大寫和小寫)( [A-Za-z]+
)。 然后,它匹配一個點,后跟一個或多個字母( \\\\.[A-Za-z]+
)。 可以有任何數量,包括零。 最后,它匹配;
字符。
您可以像這樣在Java中使用此正則表達式:
Pattern p = Pattern.compile("&[A-Za-z]+(\\.[A-Za-z]+)*;"); // java.util.regex.Pattern
String subject = "foo &Bar; baz\n";
String result = p.matcher(subject).replaceAll("");
要不就
"foo &Bar; baz\n".replaceAll("&[A-Za-z]+(\\.[A-Za-z]+)*;", "");
如果要在匹配的標記后刪除空格,可以使用以下命令:
"&[A-Za-z]+(\\.[A-Za-z]+)*;\\s*" // the "\\s*" matches any number of whitespace
還有一個不錯的在線正則表達式測試器,它使用java regexp庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.