В этой статье описывается китайские иероглифы в теге обычным матчем в Java. Поделитесь этим для вашей ссылки, следующим образом:
Сегодня друг в группе задал вопрос о регулярных выражениях, который содержит следующий контент:
<a href = 'www.baidu.comds = id32434#comment'rewr> special432 </a> 453543 <a guhll ,, l> a1special123? </a> <a href = id = 32434#Comment'Ewrer> Команда 2 </a> <a> Текст 2 </a> <a> Название </a>
Теперь вы хотите соответствовать китайским иероглистам в теге <a>, контент которого содержит китайский, но чьи атрибуты не содержат комментариев.
Решение заключается в следующем:
1. Сначала сопоставьте тег <a>, который не включает комментарий;
2. Сделайте квадратичное совпадение в результате соответствия для производства китайца;
Код заключается в следующем:
пакет com.mmq.regex; import java.util.regex.matcher; import java.util.regex.pattern;/** * @Use совпадает с китайскими именами в <a> Tag of html * @projectname материал * @author mumaoqiang * @fullname com.mmq.regex.matchcheracharcharcater * @ullname com.mmq.regex.matcheracharachachachac 1.6.0* @version 1.0*/public Class MatchChineseCharacters {/*** На основе ввода, сопоставьте китайские имена в теге <a>, который содержит китайский, но не содержит комментариев* @param исходный контент в соответствии с* @return китайски "<a ((?! Комментарий).)*?> ([^<>]*? [// u4e00-// u9fa5]+[^<>]*?)+(? Шаблон шаблона = pattern.compile (reg); Matcher Matcher = pattern.matcher (Source); StringBuilder символ = new StringBuilder (); while (matcher.find ()) {string result = matcher.group (); System.out.println (результат); // Сделайте результат квадратичной регуляризации и сопоставьте китайскую строку символов reg1 = "[// u4e00-// u9fa5]+"; Шаблон P1 = pattern.compile (reg1); Matchter M1 = P1.matcher (результат); while (m1.find ()) {parment.append (m1.group ()); } //System.out.println (farment.tostring ()); } return parmate.toString (); } public static void main (string [] args) {string result = matchChineseCharacters ("<a href = 'www.baidu.comds = id32434#comment'rewr> special432 </a> 453543 <a guhll ,, l> a1special123Hello123? href = id = 32434#comment'ewrer> special2 </a> <a> text2 </a> <a> Текст </a> "); System.out.println (результат); }}Результат вывода заключается в следующем:
<a guhll ,, l> a1special123 Hello 123? <a> Текст в теге, как дела?
Вот объяснение:
String reg = "<a (?! Комментарий).)*?> ([^<>]*? [// U4E00-// U9FA5]+[^<>]*?)+(?
Этот соответствующий контент содержит китайский, но атрибут тега не содержит комментариев. Обратный поиск? <= Не может быть использован, потому что обратный поиск может быть только содержанием фиксированной длины. Атрибуты в теге неясны, поэтому они не могут быть использованы; [// u4e00-// u9fa5]+ совпадает с китайскими строками; В то время как (?
Эта проблема была решена. Если вы хотите соответствовать указанному контенту в указанном теге, его также легко улучшить. Если есть лучшие правила, пожалуйста, оставьте сообщение, чтобы учиться друг у друга.
PS: Вот два очень удобных инструмента регулярного выражения для вашей ссылки:
JavaScript регулярное выражение онлайн -тестирование:
http://tools.vevb.com/regex/javascript
Инструмент онлайн -генерации регулярного выражения:
http://tools.vevb.com/regex/create_reg
Я надеюсь, что эта статья будет полезна для всех Java Programming.