我试图在oracle 11g中使用regexp_like()来实现文本搜索。
例如我有一个名为posts的表,如果我有值
,则在title列中'How to create a new post with pictures and videos'
'How to create a new post enter code here'
如果我写了一个查询
select * from posts where regexp_like(title, '.*pictures.*|.*how.*|.*post.*', 'i')
它返回具有两个标题的记录,其中第二个值中没有单词图片。我知道它因为我用户'|'在表达中。
我想要实现的是,只有当列中的所有单词都以任何顺序出现时,它才会返回记录。请帮我正则表达式
答案 0 :(得分:0)
希望这会对你有所帮助。
我在AngularJS写了一个plunker。它只是为了演示正则表达式的工作原理。
http://plnkr.co/edit/6WrCCAfNwidVxKkRFH9l?p=preview
您可以使用的正则表达式是
/ ^(?=。(图片))(?=。(post))(?=。*(how))[a-zA-Z] {1,100} $ / < / p>
这意味着图片,帖子,在给定的段落中应该如何。 您可以根据自己的要求调整paragrah的长度。
<form role="form" name="myform">
<div>
<div class="col-sm-8">
<input type="text" ng-model="user" name="inputfield" required="true" ng-pattern="/^(?=.*(pictures))(?=.*(post))(?=.*(how))[a-zA-Z ]{1,100}$/">
<span ng-show="myform.inputfield.$dirty && !myform.inputfield.$error.required && myform.inputfield.$error.pattern">
<small class="text-danger">
Not Matching
</small>
</span>
</div>
</div>
</form>