2015-11-06 4 views
2

Мне нужно отобразить слово doc на веб-странице. Я использую библиотеку с именем Docx4j для преобразования .doc в html. Это работает нормально. Но я получаю гиперссылки в нижнем формате.Как получить домен с URL-адресом с помощью регулярного выражения?

To search on google go to this link [#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google[#?] and type the text. 

я могу преобразовать его в

To search on google go to this link (http://www.google.com) google and type the text. 

, используя приведенный ниже код

String myText = "To search on google go to this link [#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google[#?] and type the text."; 
System.out.println(myText); 
String firstReplace = myText.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("#\\?", ""); 
System.out.println(firstReplace); 
String secondReplace = firstReplace.replaceAll("HYPER\\S+\\s+\"", "("); 
System.out.println(secondReplace); 
String finalReplace = secondReplace.replaceAll("/*\".", ")"); 
System.out.println("\n" + finalReplace); 

Может кто-то пожалуйста, предоставьте мне регулярное выражение для преобразования выше строки в

To search on google go to this link google (http://www.google.com) and type the text. 

--EDIT--

Есть некоторые ссылки, которые появляются в

[#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google page[#?] 

я должен изменить их

google page (http://www.google.com) 

Как это сделать?

ответ

2

Вы можете использовать ссылку на группу, чтобы соответствовать слову google, которое приходит после круглой скобки.

Вы можете заменить результат следующего регулярного выражения:

'(\([^)]*\))\s?(\w+)' 

С следующим:

'$2 $1' 

Вы можете использовать str.replaceAll() функции для этой цели.

Разработка:

Первый захват группы (\([^)]*\)) будет соответствовать части между скобкой, [^)]* является инвертированный символьный класс, который соответствует любой комбинации символов, за исключением того, закрывающая скобка.

И второй (\w+) будет соответствовать словам после этой части, \w+ будет соответствовать любой комбинации словных символов.

+0

не могли бы вы уточнить? –

+0

@SumodhS проверка правки. – Kasramvd

+0

Есть ли способ получить «http://www.google.com/» и заменить его на «(http://www.google.com/)»? Я не могу использовать этот скрипт, заданный в вопросе, так как то, что у меня есть, является HTML и заменяет «messes up my HTML –

0

Удаление маркеров [#?] Еще в вашем вопросе означает, что вы теряете важную информацию для внесения необходимых корректировок текста позже. Основной шаблон вашего ввода:

[#?] HYPERLINK *target* [#?] [#?] *clickable textual description of link* [#?] 

Так почему бы вам не использовать эти маркеры в ваших интересах?

Некоторые регулярное_выражение, как это (Примечание: не тестировалось, вероятно, неправильно, но только, чтобы дать вам основную идею):

mystring.replaceAll("\\[#\\?\\] HYPERLINK (.*) \\[#\\?\\] \\[#\\?\\] (.*) \\[#\\?\\]", "$2 ($1)"); 

выше разработан, чтобы дать вам «Google страницы (http://www.google.com)». Но я бы также поставил под вопрос, почему вы хотите отобразить его так. Обычно для веб-страниц HTML вы хотите, чтобы это было <a href="http://www.google.com">google page</a>. Для этого просто измените приведенный выше код.

Смежные вопросы