因爲我不是很熟悉正則表達式,是否有可能(是否很難做或不能)提取中間符號中的某些文本?例如:使用字符串的方法,而不是正則表達式
<meta name="description" content="THIS IS THE TEXT I WANT TO EXTRACT" />
因爲我不是很熟悉正則表達式,是否有可能(是否很難做或不能)提取中間符號中的某些文本?例如:使用字符串的方法,而不是正則表達式
<meta name="description" content="THIS IS THE TEXT I WANT TO EXTRACT" />
當然,你可以識別開始和您所需的子字符串由String方法如IndexOf
結束,然後獲得所需的Substring
!在你的例子中,你想找到(與IndexOf
)「內容=」,然後第一個"
,對吧?一旦你將這些索引放入字符串中,Substring
就可以正常工作。 (不張貼C#代碼,因爲我不能完全肯定它到底是什麼,你想要的,超越的IndexOf和子串...... - - !)
如果是這樣的話:
int first = str.IndexOf("contents=\"");
int last = str.IndexOf("\"", first + 10);
return str.Substring(first + 10, last - first - 10);
應該多於或少做你想做的事(再次道歉,如果在硬編碼10
s之內有一個或多個) - 它們意味着代表你要找的第一個子字符串的長度;稍微調整它們直到你得到你想要的結果! - ),但這是一般的概念。使用單參數IndexOf
定位開始,使用雙參數IndexOf
定位結尾,用Substring
切斷所需的片斷...!
多數民衆贊成在正確的,我後面是文字inbetween兩個引號像內部的標籤內容如下:內容=「我需要這個文本」 – 2009-10-14 05:05:30
感謝代碼亞歷克斯,但它遠不及近,它總是提取前15或這樣的文件的開頭字符..怪異? – 2009-10-14 06:51:19
當您添加輸出語句以顯示第一個和最後一個的值時,您會看到什麼? – 2009-10-14 14:59:09
當然你可以用正則表達式來完成。假設你想獲得<和>之間的文字...
string GetTextBetween(string content)
{
int start = content.IndexOf("<");
if(start == -1) return null; // Not found.
int end = content.IndexOf(">");
if(end == -1) return null; // end not found
return content.SubString(start, end - start);
}
如果輸入爲:文本1 /文本2 /文字3
The below regex will give the 2 in the group i.e, TEXT3
^([^/]*/){2}([^/]*)/$
if you need the last text always, then use the below
^.*/([^/]*)/$
我認爲OP正在尋找一個非正則表達式解決方案。 – 2009-11-10 14:37:05
既然你給一個XML例子,只是使用XML解析器:
string s = (string) XElement.Parse(xml).Attribute("content");
XML不是一個簡單的文本格式,並Regex
ISN真的不太合適;使用適當的工具將保護你免受各種邪惡的......例如,下面的是相同爲XML:
<meta
name="description"
content=
'THIS IS THE TEXT I WANT TO EXTRACT'
/>
這也意味着,當需求變化,你有一個簡單的TWEAK對代碼進行編碼,而不是試圖取出正則表達式並將其重新組合(如果訪問非重要節點,這可能會非常棘手)。同樣,xpath可能是一個選項;所以在你的數據xpath:
/meta/@content
是你所需要的。
如果你還沒有.NET 3.5:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
string s = doc.DocumentElement.GetAttribute("content");
這真的很好。感謝那個! =) – 2009-10-14 05:32:58
例如??? – solairaja 2009-10-14 04:55:58
我不相信它會很難,但對於任何不平凡的實現,您正在尋找相當大量的代碼來編寫和維護。而且,你會在任何接近正則表達式的地方觸碰它。 – Gregory 2009-10-14 05:06:49
正則表達式是那些令人生畏的事情之一,不應該因爲它的複雜性而被避免。這比任何標準的字符串方法(大多數情況下)要高效得多,而且有可能是更好的選擇,即使它會令人頭昏腦脹。 : - ! – 2009-10-14 08:28:01