簡體   English   中英

C#正則表達式提取字符串多次出現之間的值

[英]C# Regex extract value between string multiple occurrences

我有這樣的文字

#-cmd1-#Hakona Matata#-cmd2-#

我想獲取所有像這樣的值#-TEXT-#

這是我使用的代碼,但僅在發生一次時有效

var text = "#-adsfree-# hakona matata #-adsbottom-#";

Regex regex = new Regex("#-(.*)-#");
var v = regex.Match(text);
string s = v.Groups[1].ToString();

我猜您可能正在設計一個表達式,可能類似於:

(?<=#-)\b(\w+)\b(?=-#)

測試

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"(?<=#-)\b(\w+)\b(?=-#)";
        string input = @"#-adsfree-# hakona matata #-adsbottom-#";
        RegexOptions options = RegexOptions.Multiline;

        foreach (Match m in Regex.Matches(input, pattern, options))
        {
            Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
        }
    }
}

如果您想探索/簡化/修改該表達式,請在此演示的右上方面板中進行解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM