2008-11-18 92 views
0

有人能告诉我一个正则表达式之间的事情,选择#OnlinePopup_AFE53E2CACBF4D8196E6360D4DDB6B70其好承担#OnlinePopup正则表达式来选择#OnlinePopup和_

~DCTM~dctm://aicpcudev/37004e1f8000219e?DMS_OBJECT_SPEC=RELATION_ID#OnlinePopup_AFE53E2CACBF4D8196E6360D4DDB6B70_11472026_1214836152225_6455280574472127786 
+0

你想这样做的什么语言? – 2008-11-18 00:11:37

回答

2

注:以下是.NET正则表达式的语法,修改您的味道。

以下:

#[^_]+_[^_]+ 

将匹配:

  • 哈希
  • 一个或多个字符,直到下划线
  • 下划线
  • 一个或多个字符,直到下划线

如果第一位是恒定的,而你想更具体一些,你可以使用:

#OnlinePopup_[A-F0-9]+ 

这将匹配

  • OnlinePopup_(恰好)

  • 一个或多个十六进制字符,直到非十六进制字符
+0

解析“\#[^ \ _] + \ _ [^ \ _] +” - 无法识别的转义序列\ _。 – joe 2008-11-18 00:07:26

+0

对不起,请尝试删除\中的\ _。正则表达式语言几乎没有像这样的变化。 – 2008-11-18 00:09:47

0

只需匹配第一个'#'和第一个或最后一个'_'将不适用于您的示例,因为您要返回的字符串中包含下划线。如果所有你想要匹配的文本只有一个下划线在里面,你可以使用这个表达式:

/(#[^_]+_[^_]+)/ 

这一个井号(#)匹配,其次是两个字符串不包含下划线,由单个下划线分隔。

0

简单的东西一点点:

(\#OnlinePopup_.*?)_ 

假设你的文字以#开头,以结束_