1

我正在尝试标记包含有用文本但也包含许多我不想要的数字的文本文件。但是,使用类似的东西[^a-zA-Z0-9],我保留所有数字(0-9)

仅当附加到字符或像“24hr”或“7-days”这样的催眠时,我才想保留数字。

因此,请输入:“每周 7 天提供 3 个 24 小时职位。请致电 555-1212”

返回以下令牌的列表: 每周 7 天都有 24 小时职位可供选择

谢谢你的帮助!

4

3 回答 3

3
\d+-?[A-Za-z]+|[A-Za-z]+-?\d+|[A-Za-z]+

在此处查看实际操作:http ://regexr.com?318em

于 2012-06-13T15:47:16.823 回答
0

方括号[]代表一个叫做字符类的东西,基本上意味着匹配这个类中的任何东西。[A-Za-z0-9]将匹配字母和数字的任意组合。

如果要指定顺序,则需要从字符类中删除数字并在其后添加另一个字符类。

前任:

[0-9]+-?[a-zA-Z]+|[a-zA-Z]+-?[0-9]+|[a-zA-Z]+

[a-zA-Z]+ - matches 1 or more letters
-?        - optionally matches a dash
[0-9]+    - matches 1 or more digits
于 2012-06-13T15:53:27.693 回答
0

经过大量的试验和错误,它做到了(注意前导空格):

     \d[^-a-z]+ | -\d+|[^a-zA-Z0-9-]|[0-9]+-[0-9]+|\W-+|[0-9]+-\W

http://regexr.com?318hp 我希望这可以帮助其他需要它的人。我在 RapidMiner 中使用它来删除文本处理中不需要的标记。

于 2012-06-13T20:33:57.157 回答