协助正则表达式

时间:2012-07-05 14:33:20

标签: regex

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

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

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

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

3 个答案:

答案 0 :(得分:3)

试试这个正则表达式。

([\d-]+)$

答案 1 :(得分:2)

这应该有效。只需使用$结束正则表达式即可。它代表行尾

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

答案 2 :(得分:1)

使用字边界元字符\b

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

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