我在第二个字符串中有两个字符串“ 2007 AL PLAIN TEXT 5567(NS)”和“ 5567”,我只想从这两个字符串中提取一组5567。如何为此编写Java正则表达式?格式将是4位数字的年份,2位数字的权限,字符串纯文本,然后是我要提取的数字,最后是(NS),但问题是所有的,但数字可以是可选的,我该如何为此编写正则表达式只能在一个组中捕获数字5567吗?
最佳答案
您可以一行完成:
String num = input.replaceAll("(.*?)?(\\b\\w{4,}\\b)(\\s*\\(NS\\))?$", "$2");
假设目标是“一个单词,至少包含4个字母数字字符”。