Oracle中如何用正则表达式检测某个字段是不是带有日文字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中如何用正则表达式检测某个字段是不是带有日文字符相关的知识,希望对你有一定的参考价值。

参考技术A [\u0800-\u4e00]本回答被提问者采纳

Java中如何用正则表达式来提取string中两个/里面之间的内容?

比如有这个string:<pd>aaa/b/cc/dd/ff/e/</pd>
string基本机构一定是<pd>...../..../.../../.....</pd> 有可能有多个/../
我希望得到b, dd,e
需要用正则表达式表示后,用match出来需要的string。
另外,最后match出来的是这串string里面从第一个字符开始往后,被两个‘/’包裹的字符串。
比如刚刚例子中,取到b以后,cc就不能取了,因为cc前面的/已经被/b/用掉了。你这样split出来会有cc的。

参考技术A String s = "aaa/b/cc/dd/ff/e/";
Pattern pattern2 = Pattern.compile("/(.*?)/");
Matcher matcher2 = pattern2.matcher(s);
while(matcher2.find())
System.out.println(matcher2.group(1));
追问

Pattern.compile("/(.*?)/");
这个可以,那如果我需要前后分别加上和
呢?
是不是这个?Pattern.compile("/(.*?)/");

从string:aaa/b/cc/dd/ff/e/
中取出b dd e

我刚刚试验了下,好像不行。而且如果单纯用("/(.*?)/");是取不到第一个的。

追答

第一步,先找出和之间内容,然后第二步,再用我那个。第一步那么简单不用教了吧。

本回答被提问者采纳
参考技术B 要b...dd...e 是吧,java的我不会写,但正则给你,自己打双斜 [\\/]

pattern = "^(?:[/]?[^/]+/)([^/]+)(?:[/]?[^/]+/)([^/]+)(?:[/]?[^/]+/)([^/]+)";

print matcher.group (1, 2, 3)
参考技术C public class Test

public static void main(String[] args)
String str = "<pd>aaa/b/cc/dd/ff/e/</pd>";
String[] ary = str.substring("<pd>".length(), str.length() - "</pd>".length()).split("/");

for(int i = 1; i < ary.length; i+=2)
System.out.println(ary[i]);



---------------
b
dd
e追问

方法很好,但有2个问题:
第一需要用正则表达式表示后,用match出来需要的string。
另外,最后match出来的是这串string里面从第一个字符开始往后,被两个‘/’包裹的字符串。
比如刚刚例子中,取到b以后,cc就不能取了,因为cc前面的/已经被/b/用掉了。你这样split出来会有cc的。

参考技术D Java这个很是外行,不好意思

以上是关于Oracle中如何用正则表达式检测某个字段是不是带有日文字符的主要内容,如果未能解决你的问题,请参考以下文章

ultraedit中如何用正则表达式搜索存在的中文?

awk中如何用正则表达式判断某位数值的位数?

oracle数据库中如何用sql语句查出重复字段以及如何删除?

java中如何用Pattern和Matcher类验证日期和时间,怎么写正则表达式?

在前台页面中如何用正则表达式判断文本框中

Java中如何用正则表达式来提取string中两个/里面之间的内容?