我必須只選擇從>
到最后一個點(不是第一個點)包含的字符。
我試過這種模式
^>[a-zA-Z] $
但有些東西不起作用。我能得到一些幫助嗎?謝謝你。
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
>Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
uj5u.com熱心網友回復:
我做了一個使用 javascript 的示例來獲得一個有效的演示,但由于我必須使用一種策略,其中常用的.
(點)也應該匹配換行符,在這種情況下我被迫[\s\S]
改用。
正則運算式^>[\s\S] \.\n
希望>
在行的開頭找到 a 后跟任何字符,直到找到最后一個點后跟一個新行。
該演示將正則運算式與全文匹配,并如您所料僅回傳中間部分:
const subject = `
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
>Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.`;
var re = /^>[\s\S] \.\n/im;
var match = re.exec(subject);
if (match != null) {
result = match[0];
} else {
result = "";
}
console.log(result);
uj5u.com熱心網友回復:
C# .Net 解決方案
(>[\s\S]*\.)
或者,如果您不想捕獲>
,.
則可以使用積極的后視和積極的前瞻。
- 為了匹配我們可以使用之間的所有字符和空格,
[\s\S]*
由于積極匹配,這在 .Net 中默認作業
(?<=>)([\s\S]*)(?=\.)
試試這個小提琴:https ://dotnetfiddle.net/3ukM0X
public static void Main()
{
string content = @"Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
"">""Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.";
var regex = new System.Text.RegularExpressions.Regex(@"(?<=>)([\s\S]*)(?=\.)");
Console.WriteLine(regex.Match(content));
}
退貨:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat
uj5u.com熱心網友回復:
如果段落中不能有任何>
字符,只能在開頭,那么您可以使用:
^>[^>]*\.
^
字串的開始>
逐字匹配[^>]*
匹配除以下以外的可選字符>
\.
回溯以匹配最后一次出現的點
查看正則運算式演示
如果你想>
在段落中允許字符(但不是在開頭,因為它表示段落的開頭)你可以匹配它之后的所有不以開頭的行<
^>.*(?:\r?\n(?!>).*)*\.
查看另一個正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535557.html
標籤:正则表达式选择
上一篇:正則運算式搜索和替換特定單詞除外