Tag: 正则表达式

有没有办法在Ruby on Rails中将正则表达式更改为一系列数字?

我经常需要在正则表达式中创建数字范围。 因此,例如'[2-3] [0-9]’是20-39之间的数字范围。 要仔细检查我的范围,我通常使用Linux命令。 对于'[2-3] [0-9]’,Linux命令将是: seq 1 40|egrep ‘[2-3][0-9]’ 为我打印所有数字。 Ruby on Rails中是否有类似“seq 1 40 | egrep”的内容可以为我打印数字? 这将是非常方便的,因为我更喜欢一个很好的GUI,我可以在Rails中创建自己。

如何使用正则表达式括号括起文本?

我试图用带括号的正则表达式包围一些文本。 例如,替换all is (is) : Input is : This is a long sentence that IS written. Desired output: This (is) a long sentence that (IS) written. 我怎样才能做到这一点? (虽然仍然保持找到的字符串的原始案例)

如何使用Regex搜索数组?

所以我试图将电子邮件与电子邮件域匹配(即bob @ test to @ test.com)。 电子邮件和电子邮件域的数组都在单独的数组中。 现在我正在尝试以下方法: @Domains.each do |domain| if @Emails.include?(/.*/ + domain) then #do stuff end end 这显然是错误,我找不到另一种解决方案。 有任何想法吗?

正则表达式仅匹配RAR文件集中的第一个文件

要查看要调用unrar命令的文件,需要确定哪个文件是文件集中的第一个文件。 以下是一些示例文件名,其中 – 当然 – 只应匹配第一组: yes.rar yes.part1.rar yes.part01.rar yes.part001.rar no.part2.rar no.part02.rar no.part002.rar no.part011.rar 使用PCRE兼容regexp执行此操作的一种(有限)方法是: .*(?:(?<!part\d\d\d|part\d\d|\d)\.rar|\.part0*1\.rar) 但是当我在Rejax测试它时,这在Ruby中不起作用 。 您如何编写一个与Ruby兼容的正则表达式来匹配一组RAR文件中的第一个文件?

如何在Ruby中匹配完整的单词而不是子串

这是我的代码 stopwordlist = “a|an|all” File.open(‘0_9.txt’).each do |line| line.downcase! line.gsub!( /\b#{stopwordlist}\b/,”) File.open(‘0_9_2.txt’, ‘w’) { |f| f.write(line) } end 我想删除单词 – a,an和all但是,它也匹配子串并删除它们 输入示例 – Bromwell High is a cartoon comedy. It ran at the same time as some other programs about school life 我得到输出 – bromwell high is cartoon comedy. it rt the same time s some […]

使用反向引用和散列时的Ruby gsub问题

以下代码定义了具有正则表达式(键)和替换(值)的哈希。 然后它迭代哈希并相应地替换字符串。 简单的字符串替换效果很好,但是当我需要在替换它之前计算resut(几年到几天的情况发生变化)时,它不会。 并且预先定义哈希是关键。 我错过了什么? 任何帮助将非常感谢。 a = “After 45 years we cannot use this thing.” hash = { /(\d+) years/ => “#{$1.to_f*2}” + ‘ days’, /cannot/ => ‘of course we CAN’ } hash.each {|k,v| a.gsub!(k) { v } } puts a 谢谢!

Ruby支持条件正则表达式

只是一个语言function问题,我知道有很多方法可以在正则表达式(或多个正则表达式)之外执行此操作。 ruby是否支持条件正则表达式 ? 基本上,正则表达式中的IF-THEN-ELSE分支,其中IF的谓词是表达式中捕获的组的存在(或缺失)。 在perl中,语法是(?(predicate)yes-pattern|no-pattern)如 /(?:y|(x))(?(1)y|x)/ 在我浏览过的任何ruby文档中,我都找不到任何类似的东西,但我想我会在这里要求确保,以防我在搜索错误的单词,或者它被删除了来自文档。

需要正则表达式模式以将日期与可选时间匹配

我需要一个与日期和可选时间匹配的正则表达式模式。 日期应为m/d/yyyy格式的有效美国日期。 时间应该是h:mm:ss am/pm或24小时时间hh:mm:ss 。 比赛:2011年9月1日| 2011年9月1日上午10:00 | 9/1/2011 10:00 AM | 2011年9月1日10:00:00 这个模式将用于Ruby on Rails项目,因此它应该是可以通过Ruby使用的格式。 请参阅http://rubular.com/进行测试。 这是我现有的日期模式(可能是过度杀戮): DATE_PATTERN = /^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}/

如何在Ruby正则表达式中插入变量?

data.to_enum(:scan,/(#entity[0])/i).map do |m,| p $`.size 如何在正则表达式中使用动态变量? #entity[0]返回一个值,但在上面的语法中,#entity [0]字面意思在正则表达式中。

Ruby使用RegEx 在字符串中查找完整的数学表达式

我正在尝试编写一个程序,它将接受一个字符串并使用RegEx来搜索某些数学表达式,例如1 * 3 + 4/2。只有要查找的运算符是[ – * + /]。 至今: string = “something something nothing 1/ 2 * 3 nothing hello world” a = /\d+\s*[\+ \* \/ -]\s*\d+/ puts a.match(string) 生产: 1/ 2 我想抓住整个等式1/2 * 3.我基本上是全新的正则表达式世界,所以任何帮助将不胜感激! 新的消息: a = /\s*-?\d+(?:\s*[-\+\*\/]\s*\d+)+/ 感谢zx81的回答。 我必须修改它才能工作。 由于某种原因,^和$不会为a.match(字符串)生成任何输出,或者可能是nil输出。 此外,某些运营商在他们之前需要一个\。 用于括号的版本: a = /\(* \s* \d+ \s* (( [-\+\*\/] \s* \d+ […]