给定一个文件,例如:
potato: 1234
apple: 5678
potato: 5432
grape: 4567
banana: 5432
sushi: 56789
Run Code Online (Sandbox Code Playgroud)
我想grep所有开头的行,potato:
但只管道后面的数字potato:
.所以在上面的例子中,输出将是:
1234
5432
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我是新手使用Regex,我一直在经历一些教程,但我没有找到一个适用于我想做的事情,
我想搜索一些东西,但返回它后面的所有内容,但不返回搜索字符串本身
例如" 一些蹩脚的句子很棒 "
搜索" 句子 "
回归" 太棒了 "
任何帮助将非常感激
到目前为止这是我的正则表达式
sentence(.*)
Run Code Online (Sandbox Code Playgroud)
但它返回:句子太棒了
Pattern pattern = Pattern.compile("sentence(.*)");
Matcher matcher = pattern.matcher("some lame sentence that is awesome");
boolean found = false;
while (matcher.find())
{
System.out.println("I found the text: " + matcher.group().toString());
found = true;
}
if (!found)
{
System.out.println("I didn't find the text");
}
Run Code Online (Sandbox Code Playgroud) 我目前正在使用扫描软件"Drivve Image"从每篇论文中提取某些信息.该软件可以根据需要运行某些正则表达式代码.它似乎与UltraEdit Regex引擎一起运行.
我得到以下扫描结果:
1. 21Sid1
2. Ordernr
3. E17222
4. By
5. Seller
Run Code Online (Sandbox Code Playgroud)
我需要在字符串中搜索文本Ordernr
,然后选择以下行E17222
,最后一行将是扫描文档的文件名.我永远不会知道这两个值在字符串中的确切位置.这就是我需要关注的Ordernr
原因,因为我需要的文本将始终作为下一行.
我的要求是这样的,我需要E17222
成为匹配结果中唯一可以工作的东西.我只允许输入普通的正则表达式.
已经有一个很棒的线程:正则表达式匹配字符串后得到的单词
我测试了" \ bOrdernr\s +\K\S + "这很棒..
是不是软件不允许使用/ K. 有没有其他方法来实现\ K?
延续
虽然如果示例文本涉及"Ordernr"背后的角色,但是当前的答案在我需要的范围内不起作用.像这个样本:
21Sid1
Ordernr 1
E17222
通过
卖家
当前的解决方案选择"1"而不是" 下一行 ",这将是" E17222 ".在匹配组中.需要指出进一步参与该问题.