我在Java中遇到這個問題。正則表達式來查找特殊字符之間的子串
我有數據字符串包含在&
和;
之間的實體。
&Text.ABC;, &Links.InsertSomething;
這些實體可以是我們擁有的任何ini文件。
我需要在輸入字符串中找到這些字符串並將其刪除。在輸入字符串中可以不存在一個或多個這些實體。
我想用正則表達式來模式匹配和失敗。
任何人都可以提出這個問題的正則表達式?
謝謝!
我在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庫。
非常感謝!這非常有效。 – SfromMA 2011-01-24 20:38:59