我想通过关键字匹配法律条文,找出符合条件的那一条
条文的格式大概是这个:
第四十六条 本法自1990年4月1日起施行,国务院发布的《城市规划条例》同时废止。
所以我就想这个正则应该表达关键字query的前面有第.*条,后面截止到第.*条前面,我写的正则如下
"第.*条.*" + query + "[^(第.*条)]*"
但是匹配时,query后面只要碰到"第"、"条"就结束了,而不是完整的第几条,如上述的46条匹配出来的是
第四十六条 本法自1990年4月1日起施行,国务院发布的《城市规划
请问怎么解决。。
好纠结啊。。
谢谢
条文的格式大概是这个:
第四十六条 本法自1990年4月1日起施行,国务院发布的《城市规划条例》同时废止。
所以我就想这个正则应该表达关键字query的前面有第.*条,后面截止到第.*条前面,我写的正则如下
"第.*条.*" + query + "[^(第.*条)]*"
但是匹配时,query后面只要碰到"第"、"条"就结束了,而不是完整的第几条,如上述的46条匹配出来的是
第四十六条 本法自1990年4月1日起施行,国务院发布的《城市规划
请问怎么解决。。
好纠结啊。。
谢谢
第四十六条 本法自1990年4月1日起施行,国务院发布的《城市规划 为什么会出来这个啊?其中的 query 好像都没有指定吧?不知道你要做什么!
就是有很多法规,我要做的是通过关键字匹配法律条文,找出符合条件的那一条
假设有这样一条字符串
"abcdefghijklmnopqabrstuvwxyzabcdefg"
现在我要通过abc作为起始和终止符来找到abcdefghijklmnopqabrstuvwxyz
所以我写了如下的正则:"abc[^(abc)]*mno[^(abc)]*"
但结果匹配出来的是abcdefghijklmnopq,就是说它遇到a就终止了。。我想让它遇到abc这一整个短语才结束
Pattern pattern = Pattern.compile("(abc([^a]|a[^b]|ab[^c])*)abc");
Pattern pattern = Pattern.compile("(abc([^a]|a[^b]|ab[^c])*)");
Matcher matcher = pattern.matcher(str);
while (matcher.find())
{
System.out.println(matcher.group(1));
}
Pattern pattern = Pattern.compile("第[一二三四五六七八九十]+条");
Matcher matcher = pattern.matcher(str);
List<String> list = new LinkedList<String>();
while (matcher.find())
{
list.add(matcher.group());
}
String temp = str.replaceAll(pattern.toString(), "第X条");
pattern = Pattern.compile("(第X条([^第]|第[^X]|第X[^条])*)");
matcher = pattern.matcher(temp);
int i = 0;
while (matcher.find())
{
System.out.println(matcher.group(1).replace("第X条", list.get(i++)));
}
希望有符合原始希望的。。
不能改表原有的String,因为这里的法规数量不可计量。。