寻找在Ruby中与#gsub一起使用的正则表达式,以去除字符串中除序数外的所有数字。假设以下内容可以保留我想要的字符串内容:
也就是说,正则表达式会忽略作为序数一部分的数字,而在其他情况下匹配它们。
对于这个示例来说,可以安全地假定任何紧接着序数指示符(“nd”、“th”、“rd”或“st”)的数字字符串都是序数。
string = "100 red balloons"
strip_digits = string.gsub(/[^a-zA-Z\s]/, '')
=> " red balloons"
我应该如何修改strip_digits中的正则表达式,以便在以下情况下:
string = "50th red balloon"
strip_digits会返回:
=> "50th red balloon"
也就是说,正则表达式会忽略作为序数一部分的数字,而在其他情况下匹配它们。
对于这个示例来说,可以安全地假定任何紧接着序数指示符(“nd”、“th”、“rd”或“st”)的数字字符串都是序数。
gsub(/(\d+(?:th|[rn]d|st))|[^a-z\s]/i, "\\1")
。 - Wiktor StribiżewTP-Link TL-WR1043ND
中。 - sawa