我对正则表达式并不擅长,我可以使用一些帮助来处理我正在处理的几个表达式。我有一行文本,例如Text here then 999-99
,我想在最后隔离这个数字序列。它可以是999-99
或999-99-9
。以下似乎有效:
\d{3}-\d{2}(-\d{1})?
但我注意到它似乎只是在文本中的任何地方进行搜索,因为我可以在数字序列之后添加文本并且它仍然匹配。这需要更严格,因此该行必须以这个确切的顺序结束,而不是在它之后。我尝试以$
而不是?
结尾,但似乎永远不会创建匹配(它总是返回false )。
我还可以使用一些字符替换帮助。我正在开发一个处理OCR扫描的程序,偶尔返回的字符串值包含不可显示的字符,由܀
符号表示。是否有正则表达式用空格替换܀
个字符?
答案 0 :(得分:3)
试试这个正则表达式。
([\d-]+)$
答案 1 :(得分:2)
这应该有效。只需使用$
结束正则表达式即可。它代表行尾
\d{3}-\d{2}(-\d{1})?$
答案 2 :(得分:1)
使用字边界元字符\b
:
\b\d{3}-\d{2}(-\d)?\b
您也可以从上一个{1}
删除\d
,因为它是多余的。