21
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more.
Learn more.
Tôi có chương trình Java, sẽ nhận được văn bản đơn giản từ máy chủ. Văn bản đơn giản có thể chứa URL. Có lớp nào trong thư viện Java để chuyển đổi văn bản đơn giản thành văn bản HTML không? Hoặc bất kỳ thư viện khác? Nếu không có thì giải pháp là gì?
hỏi ngày 27 tháng 2 năm 2011 lúc 18:18Feb 27, 2011 at 18:18Feb 27, 2011 at 18:18
ShaisultshaisShaifulShaiful
5.6015 Huy hiệu vàng37 Huy hiệu bạc41 Huy hiệu đồng5 gold badges37 silver badges41 bronze badges5 gold badges37 silver badges41 bronze badges
10
Bạn nên thực hiện một số thay thế trên văn bản lập trình. Đây là một số manh mối:
- Tất cả các dòng mới nên được chuyển đổi thành
0 [\ n cho khả năng đọc tốt hơn của đầu ra].String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
- Tất cả CRS nên được bỏ [dù sao cũng sử dụng mã hóa DOS].
- Tất cả các cặp không gian nên được thay thế bằng
1String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
- Thay thế "
- Thay thế "&" bằng
1String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
- Tất cả các ký tự khác
- Tất cả các ký tự khác> = 128 nên được viết là
2, để làm cho chúng có thể đọc được trong mỗi mã hóa.String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
- Để tự động hóa các liên kết của bạn, bạn có thể sử dụng regex như
3 hoặcString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
4 và chuyển đổi chúng như JB Nizet nói. đếnString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
5, nhưng chỉ sau khi đã thực hiện tất cả các thay thế khác.JB Nizet said. toString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
5, but only after having done all the other replacements.JB Nizet said. toString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
5, but only after having done all the other replacements.String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
Mã để làm điều này trông giống như thế này:
public static String escape[String s] {
StringBuilder builder = new StringBuilder[];
boolean previousWasASpace = false;
for[ char c : s.toCharArray[] ] {
if[ c == ' ' ] {
if[ previousWasASpace ] {
builder.append[" "];
previousWasASpace = false;
continue;
}
previousWasASpace = true;
} else {
previousWasASpace = false;
}
switch[c] {
case '': builder.append[">"]; break;
case '&': builder.append["&"]; break;
case '"': builder.append["""]; break;
case '\n': builder.append["
"]; break;
// We need Tab support here, because we print StackTraces as HTML
case '\t': builder.append[" "]; break;
default:
if[ c < 128 ] {
builder.append[c];
} else {
builder.append[""].append[[int]c].append[";"];
}
}
}
return builder.toString[];
}
Tuy nhiên, việc chuyển đổi liên kết vẫn chưa được thêm vào. Nếu ai đó làm điều đó, xin vui lòng cập nhật mã.
Đã trả lời ngày 27 tháng 2 năm 2011 lúc 18:53Feb 27, 2011 at 18:53Feb 27, 2011 at 18:53
DanieldanielDanielDaniel
27.3K20 Huy hiệu vàng88 Huy hiệu bạc132 Huy hiệu đồng20 gold badges88 silver badges132 bronze badges20 gold badges88 silver badges132 bronze badges
8
Tôi tìm thấy một giải pháp sử dụng kết hợp mẫu. Đây là mã của tôi -
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
Và đây là đầu vào và đầu ra -
Văn bản đầu vào là biến
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
6:some text and then the URL //www.google.com and then some other text.
Đầu ra:
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
0Đã trả lời ngày 28 tháng 2 năm 2011 lúc 7:23Feb 28, 2011 at 7:23Feb 28, 2011 at 7:23
ShaisultshaisShaifulShaiful
5.6015 Huy hiệu vàng37 Huy hiệu bạc41 Huy hiệu đồng5 gold badges37 silver badges41 bronze badges5 gold badges37 silver badges41 bronze badges
Bạn nên thực hiện một số thay thế trên văn bản lập trình. Đây là một số manh mối:
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
1Tất cả các dòng mới nên được chuyển đổi thành
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
0 [\ n cho khả năng đọc tốt hơn của đầu ra].Aug 21, 2012 at 11:34Tất cả CRS nên được bỏ [dù sao cũng sử dụng mã hóa DOS].Raposo
Tất cả các cặp không gian nên được thay thế bằng
15 silver badges4 bronze badgesString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
1
Thay thế "
2String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]"; Pattern patt = Pattern.compile[str]; Matcher matcher = patt.matcher[plain]; plain = matcher.replaceAll["$1"];
Thay thế "&" bằng
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
1Tất cả các ký tự khác Mar 17, 2017 at 9:43Tất cả các ký tự khác Mohit Singh
Tất cả các ký tự khác> = 128 nên được viết là
2, để làm cho chúng có thể đọc được trong mỗi mã hóa.String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
3 hoặc String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
4 và chuyển đổi chúng như JB Nizet nói. đến String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
5, nhưng chỉ sau khi đã thực hiện tất cả các thay thế khác.JB Nizet said. to String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
5, but only after having done all the other replacements.2 gold badges23 silver badges25 bronze badgesMã để làm điều này trông giống như thế này:
Tuy nhiên, việc chuyển đổi liên kết vẫn chưa được thêm vào. Nếu ai đó làm điều đó, xin vui lòng cập nhật mã.is a URL [which is different from containing a hyperlink, as you wrote in your question], then transforming it into a hyperlink in HTML is simply done byString str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
8Đã trả lời ngày 27 tháng 2 năm 2011 lúc 18:53Feb 27, 2011 at 18:53Feb 27, 2011 at 18:44
DanieldanielDanielJB Nizet
27.3K20 Huy hiệu vàng88 Huy hiệu bạc132 Huy hiệu đồng20 gold badges88 silver badges132 bronze badges88 gold badges1195 silver badges1235 bronze badges
4
Tôi tìm thấy một giải pháp sử dụng kết hợp mẫu. Đây là mã của tôi -
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
9Và đây là đầu vào và đầu ra -Sep 19, 2016 at 19:52
Văn bản đầu vào là biến yvolk
Đầu ra:3 gold badges21 silver badges25 bronze badges
Đã trả lời ngày 28 tháng 2 năm 2011 lúc 7:23Feb 28, 2011 at 7:23
Tất cả các dòng mới nên được chuyển đổi thành
0 [\ n cho khả năng đọc tốt hơn của đầu ra].Aug 21, 2012 at 11:34 Under Message Format, in the Compose in this message format list, click HTML or Plain Text, and then click OK.String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
Tất cả CRS nên được bỏ [dù sao cũng sử dụng mã hóa DOS].Raposo
Tất cả các cặp không gian nên được thay thế bằng
15 silver badges4 bronze badges. You can also drag and drop your JAVA files directly into the program to convert them as well.String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
Thay thế "&" bằng
String str = "[?i]\\b[[?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/][?:[^\\s[]]+|\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]]+[?:\\[[[^\\s[]]+|[\\[[^\\s[]]+\\]]]*\\]|[^\\s`![]\\[\\]{};:\'\".,?«»“”‘’]]]";
Pattern patt = Pattern.compile[str];
Matcher matcher = patt.matcher[plain];
plain = matcher.replaceAll["$1"];
1Mar 17, 2017 at 9:43we can extract the HTML content and can parse the HTML
Document.