我的测试字符串包含新行。
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 :(得分:1)
这是负面的先行断言:
^(?!.*<\?)
仅当字符串中的任何位置不出现<?
时,才匹配。如果您的文字可以包含换行符,则可能需要在开头添加(?s)
。
答案 1 :(得分: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字符串进行大小写折叠(将字符串转换为大写或小写)是不好的。不要那样做。
答案 2 :(得分:1)
喜欢这个吗?
!Regex.IsMatch(testString, Regex.Escape("<?"))
甚至更容易:
!testString.Contains("<?")
仅使用正则表达式(这也适用于换行符):
^(?![\s\S]*<\?)
答案 3 :(得分:0)
1589823171342