我在这里遇到一个简单的RegExp问题。 我想从特定字符串中检索所有使用以下规则完成的子字符串: 1.值在TAB之间。 2.还包括双引号。
我该怎么做?
我找到了获取TAB之间值的方法,但我无法弄清楚如何包含双引号验证。
'get the text from clipboard
Dim stringInClipboard As String = ClipboardGet()
Dim vRegExMatch As System.Text.RegularExpressions.MatchCollection = System.Text.RegularExpressions.Regex.Matches(stringInClipboard, "\t[^\t\\]*(?:\\.[^\t\\]*)*\t")
示例:
{Tab} Comment 1 {Tab}
{Tab} Comment 2 {Tab}
{Tab} Long comment text.
some text
.
"<--Double quotes!!!
.
{Tab}
{Tab} Comment 4 {Tab}
基本上,我想要检索:
Long comment text.
some text
.
"<--Double quotes!!!
.
答案 0 :(得分:1)
试试这个:
(?s)\t(?=[^\t]*?").*?\t
(?s)
使得点字符匹配新行,您的示例包含这些行。\t
检查字符串是否以标签(?=[^\t]*?")
向前看是否在遇到下一个标签之前有双引号.*\t
匹配所有字符,直到下一个标签,如果前瞻已成功答案 1 :(得分:0)
我找到了答案,感谢@kabb!
我修改了一点RegEx:
(?s)\t(?=[^\t]*[""]+)[^\t]*[\t]{1}
以下是实时测试: http://regex101.com/r/rM6hC3