php - PHP Regex 仅匹配一些字母/单词和标点符号
问题描述
不确定这是否是正确的方法,如果您有更好的方法,请加入:
我有一系列需要匹配的数据代码。代码本身被刮掉并从其他文本中分离出来,但它们的位置和带有该文本的标记只有大约 70% 的一致性。我认为使用正则表达式可能是一种更好的方法,不仅可以获取异常值,还可以获取所有异常值,因为代码非常标准,但我不确定如何仅使用“某些”字母/括号/asterix/等来定位字符串。这是我的测试示例:
3-301.11(C)*
3-501.16 (Cold)
5-202.11(A)
3-501.16 (Hot)
6-501.111(C)*
7-201.11(A)*
大多数代码都可以正常返回:
5-103.11
我可以使用这个表达^[0-9]+[-]+[0-9]+[0-9]+[.]+[0-9]+[0-9]
来定位其中的大部分,但结局让我失望
我在这里设置了示例:
编辑
刚刚尝试了弗兰克将 (.*) 添加到我的解决方案,它有效,但打开了一个新问题。由于这些代码嵌入在文本中,因此我的测试样本应该在代码之后包含其他文本。我已经更新了链接/测试示例。
解决方案 感谢大家的帮助。我用(现在)工作解决方案更新了链接。
^\d+-\d+\.\d+(?:\s*\([^()]*\)\*?)?
解决方案
从您展示的代码中,您可以大大简化此模式:
/\d+-\d+\.\d+/
解释:
- 一个或多个数字
- 然后是破折号
- 一个或多个数字
- 然后是一段时间
- 一个或多个数字
请注意,无需[]
像您那样输入单个字符;事实上,[-]
会被误解,因为-
inside[]
被解释为范围运算符,例如[0-9]
.
推荐阅读
- ionic-framework - (iOS) Navigator.mediaDevices not present in your browser error with ionic and aframe
- angular - Mat-tab 在选定选项卡后加载内部组件
- javascript - jQuery点击进入选择引导搜索不起作用
- bash - bash tty 输入耗尽(或刷新?)
- reactjs - 打字稿错误:“EventTarget”类型上不存在属性“删除”
- c# - 向下滚动并更新 Listview C#
- php - 在 PHP 中创建一个具有随机值的 cookie --> 在 MySQL 查询中使用该随机值
- c# - WPF 数据绑定仅在更改时更新
- android - AndroidX 库在我的应用程序中与 CheckBoxes 混淆了
- linux - 如何更新终端上特定行的文本?