回答
使用组()
和或|
运营商例如验证用户输入您做前人的精力:
set serveroutput on;
declare
l_value varchar2(32767) := '<p>test and data</p>';
begin
if regexp_like(l_value,'(<|>)','i') then
dbms_output.put_line('invalid');
else
dbms_output.put_line('valid');
end if;
end;
/
好运。
使用[
和]
来定义要匹配的一组字符,例如, [abc]
,[a-z]
,
select string
, case
when regexp_like(string,'[<>]') then 'Invalid'
else 'Valid'
end as test
from
(select '<p>text</p>' as string from dual union all
select 'text' from dual);
STRING TEST
---------------- -------
<p>text</p> Invalid
text Valid
或者在PL/SQL:
declare
teststring varchar2(100) := '<p>test and data</p>';
regex varchar2(100) := '[<>]';
begin
dbms_output.put('"'||teststring||'"');
dbms_output.put(case when regexp_like(teststring,regex) then ' matches ' else ' does not match ' end);
dbms_output.put(regex);
dbms_output.new_line();
end;
/
"<p>test and data</p>" matches [<>]
PL/SQL procedure successfully completed
作为检查约束:
create table mytable
(col varchar2(20)
constraint mytable_ltgt_chk check (not regexp_like(col,'[<>]'))
);
测试:
insert into mytable (col) values ('kitten > puppy');
拒绝了:
ORA-02290: check constraint (MYRIAD_OWNER_82.MYTABLE_LTGT_CHK) violated
如果你想排除方括号内为好,这将是:
constraint mytable_symbol_chk check (not regexp_like(col,'[][<>]'));
或没有任何正则表达式:
constraint mytable_symbol_chk check (col = translate(col,'[]<>','.'))
这也非常有帮助。如果我不需要'['或']'符号怎么办?在这种情况下会有帮助吗? –
你的意思是你想检查文本是否包含符号'['或']'?只需将它们包含在正则表达式中即可。 –
嗨,我想要的是,我想对列值设置一个约束,以允许除< or >之外的所有内容。所以我想尝试像ALTER TABLE mytable ADD CONSTRAINT“mytable_CHK”CHECK((REGEXP_LIKE(col,^'(<|>)','i')))。不知道它会以这种方式工作。 –
- 1. 如何限制在文本框中输入的任何特殊字符
- 2. 如何使用jquery阻止或限制输入字段中的特殊字符?
- 3. 限制特殊字符
- 4. 在输入中插入特殊字符
- 5. 如何在Vim中回显特殊字符,如%,<cfile>?
- 6. 限制用户输入特殊字符和数字
- 7. 通过ng-pattern在输入字段中限制少量特殊字符
- 8. 如何在jQuery中对特殊字符(>,<,%)进行编码
- 9. 如何在jquery中输入特殊字符后检索字符?
- 10. Python:如何将字符串包含在列表中< and >
- 11. 我不希望用户输入!@ ## $%$#*&&< - 这些特殊字符在我的TextField中..如何限制这个?
- 12. jquery在ID中输入特殊字符
- 13. 在Excel VBA中输入特殊字符
- 14. On Key Down限制用户输入一些特殊字符
- 15. 如何限制searchView中的特殊字符和数字?
- 16. 如何限制objective-c中的数字和特殊字符
- 17. 允许特殊字符输入密码
- 18. 使用jQuery限制特殊字符
- 19. 如何删除“<" and ">”之间的所有字符,包括“<" and ">”?
- 20. 如何将<input>中的特殊字符转换为转义序列
- 21. 如何阻止HTML输入字段中的特殊字符?
- 22. 阻止在PHP中输入作为输入的特殊字符
- 23. 特殊列的mysql限制
- 24. 如何使用xamarin限制iOS中的特殊字符?
- 25. 如何限制asp.net文本框中特殊字符的组合?
- 26. 如何限制输入的字符数
- 27. 检查特殊符号的输入值
- 28. 如何在cmd中输入特殊字符?
- 29. 如何在vi编辑器中输入特殊字符
- 30. 如何在oracle数据库中输入“§”等特殊字符?
哇! !非常感谢你,那很准确。我正在尝试什么不..再次感谢。 –
嗨,如果我在您的有效案例字符串中使用< or >,它仍然显示有效,但现在应该变为无效。 –
@SachinVaidya请注意,有效的案例已被注释掉,在提供的示例中,我必须编辑答案以防止模棱两可的解释。威廉罗伯逊说,其他变化将起作用。 – Ftaveras