Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不需要的多个匹配在asp.net中创建带有正则表达式匹配的链接_Asp.net_Regex - Fatal编程技术网

不需要的多个匹配在asp.net中创建带有正则表达式匹配的链接

不需要的多个匹配在asp.net中创建带有正则表达式匹配的链接,asp.net,regex,Asp.net,Regex,我正在用与正则表达式匹配的某些字符创建一个链接,只要特定匹配项在输入字符串中不出现多次,所有链接都可以正常工作 我想找到任何“RTR-”或“RO-”后跟2到4个数字的实例,并将其转换为链接。例如,“这是RTR-1234”变成 “这是” 我将字符串传递给: Function linkifyText(ByVal txt As String) As String Dim regx As New Regex("\b(RTR-|RO-)\d{2,4}\b", RegexOptions.Ignor

我正在用与正则表达式匹配的某些字符创建一个链接,只要特定匹配项在输入字符串中不出现多次,所有链接都可以正常工作

我想找到任何“RTR-”或“RO-”后跟2到4个数字的实例,并将其转换为链接。例如,“这是RTR-1234”变成

“这是”

我将字符串传递给:

Function linkifyText(ByVal txt As String) As String

    Dim regx As New Regex("\b(RTR-|RO-)\d{2,4}\b", RegexOptions.IgnoreCase)

    Dim mactches As MatchCollection = regx.Matches(txt)

    For Each match As Match In mactches
        txt = txt.Replace(match.Value, "<a href='http://server/browse/" & match.Value & "'>" & match.Value & "</a>")
    Next

    Return txt
End Function
函数linkifyText(ByVal txt作为字符串)作为字符串
Dim regx作为新的正则表达式(“\b(RTR-| RO-\d{2,4}\b”,RegexOptions.IgnoreCase)
Dim mactches As MatchCollection=regx.Matches(txt)
在mactches中的每一个匹配
txt=txt.Replace(match.Value,“”)
下一个
返回文本
端函数
即使存在多个不同的匹配项,这似乎也很有效。对于exmaple,“这是RTR-1234,这是RTR-4321”变为

这是,这是

但是,当同一匹配在输入字符串中多次出现时,我会遇到问题。例如,“这是RTR-1234,这是RTR-1234”变为

这是>这是'>

说明 为什么不在一次搜索和替换操作中执行此操作

\b((?:R(?:TR | O))-[0-9]{2,4})\b
替换为:

此正则表达式将执行以下操作:

  • 查找
    RTR-
    RO-
    的任何实例,后跟2到4个数字
例子 现场演示

示例文本

我想找到“RTR-”或“RO-”后跟2到4个数字的任何实例,并将其转换为链接。
例如,“这是RTR-1234”
例如,“这是RTR-1234,这是RTR-1234”变为
更换后

我想找到“RTR-”或“RO-”后跟2到4个数字的任何实例,并将其转换为链接。
“这是”
例如,“这是又是这是”变成
解释
节点说明
----------------------------------------------------------------------
\b单词char(\w)和
不是单词char的东西
----------------------------------------------------------------------
(组和捕获到\1:
----------------------------------------------------------------------
(?:组,但不捕获:
----------------------------------------------------------------------
R'R'
----------------------------------------------------------------------
(?:组,但不捕获:
----------------------------------------------------------------------
TR‘TR’
----------------------------------------------------------------------
|或
----------------------------------------------------------------------
O'O'
----------------------------------------------------------------------
)分组结束
----------------------------------------------------------------------
)分组结束
----------------------------------------------------------------------
-                        '-'
----------------------------------------------------------------------
[0-9]{2,4}“0”到“9”(介于2和3之间)的任何字符
和4倍(与最高金额匹配)
(可能的)
----------------------------------------------------------------------
)结束\1
----------------------------------------------------------------------
\b单词char(\w)和
不是单词char的东西
----------------------------------------------------------------------
说明 为什么不在一次搜索和替换操作中执行此操作

\b((?:R(?:TR | O))-[0-9]{2,4})\b
替换为:

此正则表达式将执行以下操作:

  • 查找
    RTR-
    RO-
    的任何实例,后跟2到4个数字
例子 现场演示

示例文本

我想找到“RTR-”或“RO-”后跟2到4个数字的任何实例,并将其转换为链接。
例如,“这是RTR-1234”
例如,“这是RTR-1234,这是RTR-1234”变为
更换后

我想找到“RTR-”或“RO-”后跟2到4个数字的任何实例,并将其转换为链接。
“这是”
例如,“这是又是这是”变成
解释
节点说明
----------------------------------------------------------------------
\b单词char(\w)和
不是单词char的东西
----------------------------------------------------------------------
(组和捕获到\1:
----------------------------------------------------------------------
(?:组,但不捕获:
----------------------------------------------------------------------
R'R'
----------------------------------------------------------------------
(?:组,但不捕获:
----------------------------------------------------------------------
TR‘TR’
----------------------------------------------------------------------
|或
----------------------------------------------------------------------
O'O'
-----------------------------------