簡體   English   中英

正則表達式以查找特殊字符之間的子字符串

[英]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庫。

http://www.regexplanet.com/simple/index.html

你可以試試:

input=input.replaceAll("&[^.]+\\.[^;]+;(,\\s*&[^.]+\\.[^;]+;)*","");

看見

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM