2012-04-02 23 views
-1

我的测试字符串包含新行。正则表达式来检查一个单词是否不存在

Test<?TEST. 
sdasdsadads 
Test<?TEST. 

Test<?TEST. 

我要检查如果组合<?在文本的任何地方存在。如果是这样,我的正则表达式应该失败。

任何想法?

ASP.NET网页\

<td> 
          <asp:TextBox ID="test" runat="server" Height="55px" TextMode="MultiLine"></asp:TextBox> 
          <asp:RegularExpressionValidator ID="RegularExpressionValidator11" runat="server" 
           ControlToValidate="test" Display="Dynamic" ForeColor="Red" 
           ValidationGroup="Validations" ValidationExpression="^(?![\s\S]*<\?)" EnableClientScript="true"></asp:RegularExpressionValidator> 
         </td> 
+0

你能澄清这个问题,可能会给出一些例子吗? – 2012-04-02 16:03:09

+0

是否区分大小写? – 2012-04-02 16:05:09

+0

您是否检查[Apple's doc](http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html)? – 2012-04-02 16:05:28

回答

1

这是排除模式断言是:

^(?!.*<\?) 

比赛只有<?没有在字符串中的任何地方发生。如果您的文本可以包含换行符,您可能需要在开始时添加(?s)

+0

对不起,请参阅上面的代码我更新了 – sqlnewbie 2012-04-02 16:08:53

+0

当文本包含换行符时如何形成正则表达式?,在开始时厌倦添加?s,但不能在ASP.NET网页工作 – sqlnewbie 2012-04-02 23:41:34

+0

@sqlnewbie:它是'(?s)' ,而不是''s'。如果你的正则表达式引擎实际上是JavaScript而不是.NET(当你在客户端进行匹配时),那么这确实不起作用。相反,使用正则表达式'^(?![\ s \ S] * <\?'。 – 2012-04-03 05:48:45

1

你不需要使用正则表达式来搜索特定的单词。相反,只需对该特定字词进行简单的子字符串搜索即可。

在Python,这看起来像:

def string_contains_test (text): 
    lowercase_text = text.lower() 
    if 'test' in lowercase_text: 
     return True 
    else: 
     return False 

text_1 = "Lorem ipsum dolor sit amur...." 
text_2 = "This is a test." 

string_contains_test (text_1) # False. 
string_contains_test (text_2) # True. 

注意这种情况下折叠(将字符串转换为大写或小写)时完成为Unicode字符串是恶。不要这样做。

1

是否这样?

!Regex.IsMatch(testString, Regex.Escape("<?")) 

或者更简单:

!testString.Contains("<?") 

仅使用正则表达式(这会为新行工作也):

^(?![\s\S]*<\?) 
+0

我试过了,但没有工作Akzen,用新行,可以检查一下吗? – sqlnewbie 2012-04-03 00:33:40

+0

我使用这个.net正则表达式测试仪:http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx – aKzenT 2012-04-03 00:37:30

+0

你可以用上面的链接检查你的测试输入吗?它应该使用与.net框架相同的Regex引擎。也许你可以从使用正则表达式的ASP.net网页上发布一些代码,看看我们是否发现错误。 – aKzenT 2012-04-03 00:37:59

相关问题