正则表达式匹配组

时间:2016-11-24 12:07:27

标签: c# regex

我有以下格式的文字格式:

  • [1/@DaysInMonth @FirstTitle] @SecondTitle

@DaysInMonth根据所选月份得出天数,@ FirstTitle和@SecondTitle是字母数字。

我尝试了以下内容:

[\1(?<DaysInMonth>\d\s+) (?<FirstTitle>[\w\s \]+)\] (?<SecondTitle>[\w\s \]+)$]

但它似乎没有起作用。匹配字符为53个字符。 [Link]

我该如何解决这个问题?

@ baddger964回答后编辑:

我想在我的应用程序中使用:

private Regex _regex = null;

string value = "[1/30 Development In Progress] Development In Progress";

_regex = new Regex(@"\[\d+\/(?<DaysInMonth>\d+)\s(?<FirstTitle>[\w\s]+)\]\s(?<SecondTitle>[\w\s]+)").Match(value);

string value1 = _regex.Groups["DaysInMonth"].Value;
string value2 = _regex.Groups["FirstTitle"].Value;
string value3 = _regex.Groups["SecondTitle"].Value;

你的回答非常感谢。

谢谢。

2 个答案:

答案 0 :(得分:2)

也许你可以使用它:

@@ -10,6 +10,9 @@

     property int radiusShadow: 20
     property int iOptionHeight: 30
+    property int animationDuration: 500 // ms
+
+    Behavior on y { NumberAnimation { duration: window.animationDuration } }

     Rectangle {
         id: panel
@@ -18,6 +21,7 @@
         height: menu1.height + menu2.heightVisible + 2*radiusShadow
         width: window.width - 2*radiusShadow
         color: "transparent"
+        Behavior on height { NumberAnimation { duration: window.animationDuration } }

         Rectangle {
             id: menu1
@@ -25,6 +29,7 @@
             anchors { bottom: parent.bottom; bottomMargin: radiusShadow }
             width: parent.width
             height: column1.children.length * iOptionHeight
+            Behavior on height { NumberAnimation { duration: window.animationDuration } }

             Column {
                 id: column1
@@ -52,6 +57,8 @@
             width: parent.width
             height: column2.children.length * iOptionHeight

+            Behavior on height { NumberAnimation { duration: window.animationDuration } }
+
             z: -1

             Column {
@@ -64,6 +71,7 @@
                     color: "blue";
                     height: iOptionHeight;  width: parent.width
                     Text { text: qsTr("option 4") }
+                    Behavior on height { NumberAnimation { duration: window.animationDuration } }

                     MouseArea {
                         anchors.fill: parent
@@ -77,6 +85,7 @@
                     color: "pink";
                     Text { text: qsTr("option 3") }
                     height: iOptionHeight;  width: parent.width
+                    Behavior on height { NumberAnimation { duration: window.animationDuration } }
                 }
             }
         }
@@ -105,4 +114,4 @@
         color: "#40000000"
         source: panel
     }
-}+}

注意:

\[\d+\/(?<DaysInMonth>\d+)\s(?<FirstTitle>[\w\s]+)\]\s(?<SecondTitle>[\w\s]+) =&gt;不要逃避&#34; 1&#34;因为\1与最后定义的匹配组匹配相同的东西。

\1 =&gt;你必须逃避这个[因为\[你创建了一组caracters

所以你的正则表达式:

[

说:我希望从这组特征中匹配一个角色:

[\1(?<DaysInMonth>\d\s+) (?<FirstTitle>[\w\s \]+)\] (?<SecondTitle>[\w\s \]+)$]

答案 1 :(得分:0)

喜欢这个? 以下是正常正则表达式的一个例子。

https://regex101.com/r/wLBj7Z/1