अद्यतनजावा के appendReplacement और appendTail
सी # Regex बराबर क्या है यहाँ मैं के साथ आया है। मैंने अभी तक इसका परीक्षण नहीं किया है क्योंकि यह कोड के एक बड़े टुकड़े का हिस्सा है जिसे अभी भी पोर्ट किया जाना चाहिए।
क्या आप कुछ भी देख सकते हैं जो जगह से बाहर दिखता है?
private const string tempUserBlock = "%%%COMPRESS~USER{0}~{1}%%%";
string html = "some html";
int p = 0;
var userBlock = new ArrayList();
MatchCollection matcher = preservePatterns[p].Matches(html);
int index = 0;
StringBuilder sb = new StringBuilder();
int lastValue = 0;
foreach(Match match in matcher){
string matchValue = match.Groups[0].Value;
if(matchValue.Trim().Length > 0) {
userBlock.Add(matchValue);
int curIndex = lastValue + match.Index;
sb.Append(html.Substring(lastValue, curIndex));
sb.AppendFormat(tempUserBlock, p, index++);
lastValue = curIndex + match.Length;
}
}
sb.Append(html.Substring(lastValue));
html = sb.ToString();
मूल नीचे पोस्ट:
यहाँ मूल जावा है:
private static final String tempUserBlock = "%%%COMPRESS~USER{0}~{1}%%%";
String html = "some html";
int p = 0;
List<String> userBlock = new ArrayList<String>();
Matcher matcher = patternToMatch.matcher(html);
int index = 0;
StringBuffer sb = new StringBuffer();
while (matcher.find())
{
if (matcher.group(0).trim().length() > 0)
{
userBlock.add(matcher.group(0));
matcher.appendReplacement(sb, MessageFormat.format(tempUserBlock, p, index++));
}
}
matcher.appendTail(sb);
html = sb.toString();
और मेरी सी # रूपांतरण अब तक
private const string tempUserBlock = "%%%COMPRESS~USER{0}~{1}%%%";
string html = "some html";
int p = 0;
var userBlock = new ArrayList();
MatchCollection matcher = preservePattern.Matches(html);
int index = 0;
StringBuilder sb = new StringBuilder();
for(var i = 0; i < matcher.Count; ++i){
string match = matcher[i].Groups[0].Value;
if(match.Trim().Length > 0) {
userBlock.Add(match);
// WHAT DO I DO HERE?
sb.Append(string.Format(tempUserBlock, p, index++));
}
}
// WHAT DO I DO HERE?
matcher.appendTail(sb);
html = sb.toString();
ऊपर टिप्पणी देखें, जहां मैं पूछता हूं, "मैं यहां क्या करूँ?"
स्पष्टीकरण
जावा कोड ऊपर कुछ HTML पर स्ट्रिंग प्रतिस्थापन प्रदर्शन कर रहा है। यह मूल रूप से प्रतिस्थापित टेक्स्ट को सहेजता है क्योंकि कुछ व्हाइटस्पेस संपीड़न पूरा होने के बाद इसे फिर से डालने की आवश्यकता होती है।
तो समस्या क्या है? – erickson
क्या आप इस मुद्दे को बेहतर तरीके से परिभाषित कर सकते हैं, जैसे अपेक्षित परिणाम क्या है और आपको क्या परिणाम मिल रहा है? – CodingGorilla
मैं अपने भागों का अनुमान लगा रहा हूं '// मैं क्या करूँ?' – jrummell