0

我不擅长正则表达式,我可以在我正在处理的几个表达式上使用一些帮助。我有一行文字,例如Text here then 999-99,我想在最后隔离那个数字序列。它可以是999-99999-99-9。以下似乎有效:

\d{3}-\d{2}(-\d{1})?

但我注意到它似乎只是在文本中的任何位置进行搜索,因为我可以在数字序列之后添加文本并且它仍然匹配。这需要更严格,以便该行必须以这个确切的顺序结束,并且在它之后没有任何内容。我尝试以$而不是结尾?,但这似乎永远不会创建匹配项(它总是返回 false)。

我还可以在字符替换方面使用一些帮助。我正在开发一个处理 OCR 扫描的程序,有时返回的字符串值包含无法显示的字符,由܀符号表示。是否有正则表达式可以܀用空格替换字符?

4

3 回答 3

3

试试这个正则表达式。

([\d-]+)$
于 2012-07-05T14:39:09.300 回答
2

这应该有效。只需用$. 它代表行尾

\d{3}-\d{2}(-\d{1})?$

于 2012-07-05T14:39:25.070 回答
1

使用词边界元字符,\b

\b\d{3}-\d{2}(-\d)?\b

您也可以{1}从最后一个中删除它,\d因为它是多余的。

于 2012-07-05T14:38:33.667 回答