我一直在提取字符串中的正則表達式值的問題。我有一個字符串與幾個正則表達式,我需要得到每個表達式匹配的值。但事情是,它沒有正確地返回最後一場比賽。例如:Vb.Net - 有問題提取通配符值
正則表達式:I play (\S+.*?) and (\S+.*?)
字符串:我彈吉他和低音
程序將返回第一個表達式的值作爲「吉他」,但它的返回第二個表達式的值是「the」而不是「低音」。有沒有辦法來解決這個問題?
我一直在提取字符串中的正則表達式值的問題。我有一個字符串與幾個正則表達式,我需要得到每個表達式匹配的值。但事情是,它沒有正確地返回最後一場比賽。例如:Vb.Net - 有問題提取通配符值
正則表達式:I play (\S+.*?) and (\S+.*?)
字符串:我彈吉他和低音
程序將返回第一個表達式的值作爲「吉他」,但它的返回第二個表達式的值是「the」而不是「低音」。有沒有辦法來解決這個問題?
嘗試:I play (\S+.*) and (\S+.*)
。
那麼,你要求使用.*?
的最小長度的比賽,所以你去。
它適用於第一組becase and
是一個錨點。對於第二組,沒有錨點,因此最小匹配。
嘗試增加串標誌的結束作爲錨:I play (\S+.*?) and (\S+.*?)$
嘗試這種情況:I play (\S+.+) and (\S+.+)
這有點幫助,但是我還沒到。正則表達式不匹配,如果我只在「play」和「end」之間有一個字符(我需要它與最後一個非空白字符匹配任何東西) – Walker
它的工作,謝謝。 – Walker