java - 在java中被其他文本包围时查找模式
问题描述
我有一个找到某种模式的正则表达式。这在文本被隔离时有效。但是,我希望它在被其他文本包围时工作,并以某种方式从那里提取它。这是我想出的模式。例如,如果 9708/32/M/J/15 是文本,它会找到它。但是如果是 awfawf9708/32/M/J/15awfafwaf 就找不到了。
Pattern pattern = Pattern.compile("^\\d{4}/\\d{2}/\\w/\\w/\\d{2}$");
如何修改它以使其在两种情况下都可以工作?
解决方案
^ 断言字符串的开头。$ 断言字符串结束。括号用于捕获其中匹配的内容。这两个都可以工作:
(\d{4}/\d{2}/\w/\w/\d{2})
^.*(\d{4}/\d{2}/\w/\w/\d{2}).*$
我不确定你为什么要逃避反斜杠。如果在程序中使用正斜杠作为分隔符,您可能需要转义正斜杠。我更喜欢使用 ~ 作为分隔符,因为它是一个罕见的字符。
推荐阅读
- spring - 将一个 MockBean 注入另一个
- amazon-web-services - spring data flow : 使用 pod-annotations 将 IAM 角色分配给 pod
- powershell - 如何从 URL 下载所有文件?
- c++ - 如何将不可编译的配置文件添加到 QT 项目中?
- javascript - 用户配置文件信息 - 将其保存在 localStorage 或 Ngrx
- php - json_encode 将单个元素数组视为对象
- html - 输入类型“搜索”取消按钮未在 Firefox、IE 和 Edge 中显示
- reactjs - TypeError:this.state.requests.map 不是函数
- r - UpdateSelectizeInput 行为奇怪
- ms-office - 修复由 office.js 删除的 history.pushState 的最佳做法是什么?