[英]Search a text from a string and extract something else
我有一个弦
InsertedTextAry没有代理机构的协议-ABCD <102354这是测试<
现在的要求是查看文本是否:
没有代理机构的协议
...是否存在于上面的文本中,如果存在,则提取文本:
没有代理机构的协议-XXXX
在NO AGREEMENT EXISTS FOR AGENCY -
在<
之前的部分可以是任何长度,包括数字和/或字母。
我已经用代码搜索了
protected void testMethod(String text){
if(Pattern.matches(APPEND_FIRST + "NO AGREEMENT EXISTS FOR AGENCY" + APPEND_LAST, text)){
// do something
}
}
现在,我需要一些有关如何提取模式的NO AGREEMENT EXISTS FOR AGENCY - XXXX
帮助NO AGREEMENT EXISTS FOR AGENCY - XXXX
(其中XXXX
可以是任意长度的字母数字,后跟<
)。
public static void main(String[] args) {
final String TEST = "InsertedTextAry NO AGREEMENT EXISTS FOR AGENCY - ABCD< 102354 This is test<";
// Create a Pattern object
Pattern r = Pattern.compile("NO AGREEMENT EXISTS FOR AGENCY[^<]*");
if(TEST.contains("NO AGREEMENT EXISTS FOR AGENCY"))
{
// Now create matcher object.
Matcher m = r.matcher(TEST);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
}
}
输出:
Found value: NO AGREEMENT EXISTS FOR AGENCY - ABCD
尝试这个
String text = "InsertedTextAry NO AGREEMENT EXISTS FOR AGENCY - ABCD< 102354 This is test<";
String pattern1 = "NO AGREEMENT EXISTS FOR AGENCY";
String pattern2 = "<";
if (text.indexOf(pattern1) > -1){
String value = text.substring(text.indexOf(pattern1));
value = value.substring(0, value.indexOf(pattern2));
System.out.println(value);
}
这项愚蠢的工作:
public static void main(String[] args) {
String str = "InsertedTextAry NO AGREEMENT EXISTS FOR AGENCY - ABCD< 102354 This is test<";
Pattern pattern = Pattern.compile("^.*(NO AGREEMENT EXISTS FOR AGENCY - .*)< (.*)$");
Matcher m = pattern.matcher(str);
if (m.find()) {
System.out.println(m.group(1));
}
}
此代码打印:
NO AGREEMENT EXISTS FOR AGENCY - ABCD
通过对组使用正则表达式,您可以提取所需消息的任何部分
您可以执行以下操作:
String text = "InsertedTextAry NO AGREEMENT EXISTS FOR AGENCY - ABCD< 102354 This is test<";
String[] arr = text.split("<")";
if (arr != null && arr.length > 0) {
String answer = arr[0].substring(arr[0].indexOf("NO AGREEMENT EXISTS FOR AGENCY"));
}
答案:“没有代理机构协议-ABCD”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.