Tag: 正则表达式

以编程方式从字符串派生正则表达式

我想输入一个字符串并返回一个可用于描述字符串结构的正则表达式。 正则表达式将用于查找与第一个相同结构的更多字符串。 这是故意模棱两可的,因为我肯定会错过SO社区中的某个人会抓住的案例。 请发布任何和所有可能的方法来执行此操作。

ruby中/ \ p {Alpha} / i和/ \ p {L} / i之间有什么区别?

我正在尝试在ruby中构建一个正则表达式以匹配UTF-8中的字母字符,例如ñíóúü等。我知道/\p{Alpha}/i作品和/\p{L}/i作品也有效但有什么区别?

如何将科学记数法字符串转换为十进制表示法?

我想find并将csv文件中的所有科学记数法字符串convert为十进制表示法,例如: 1.0e-05 to 0.00001 我怎么能用ruby做到这一点?

在一行中查找不区分大小写的单词匹配

我需要在一行中查找所有出现的单词,但搜索必须不区分大小写。 我还需要在正则表达式中添加什么? arr = line.scan(/\s+#{word}\s+/)

Ruby 1.9和Javascript regexp之间的差异

除了Javascript的^和$相当于Ruby的\A和\z ,两个正则表达式引擎之间还有哪些细微差别? 我正在寻找相同的正则表达式可能表现不同的细微差别,例如/^abc$/将在Ruby中匹配: 123 abc def 但它在Javascript中不匹配。

从字符串中删除双引号

我正在尝试从MySQL数据库中获取数据并使用Ruby将其重新格式化为平面文本文件。 我的一些MySQL数据包含双引号,如下所示: Matthew “Matt” Perry 我需要删除这些引号并用其他东西替换它们,| 例如。 我在stackoverflow上发现了另一篇关于删除引号的post,建议如下: s.scan(/'(.+?)’|”(.+?)”|([^ ]+)/).flatten.compact 但是返回完整的字符串(带双引号)。 我怎样才能得到 Matthew |Matt| Perry 代替?

正则表达式在尊重CDATA时转义HTML&符号

我编写了一个内容管理系统,该系统使用服务器端正则表达式在页面响应中将符号转发到客户端浏览器之前。 正则表达式注意到已经被转义或属于HTML实体的&符号。 例如,以下内容: a&b,c&amp; d,&copy; 2009年 改为: a&amp; b,c&amp; d,&copy; 2009年 (只有第一个&被修改。)这是正则表达式,它是从Rails助手中获取和修改的: html.gsub(/&(?!([a-zA-Z][a-zA-Z0-9]*|(#\d+));)/) { |special| ERB::Util::HTML_ESCAPE[special] } 虽然这很好用但确实有问题。 正则表达式不知道可能围绕未转义的&符号的任何<![CDATA[或]]> 。 这对于嵌入式JavaScript保持不变是必要的。 例如,这个: // 遗憾的是这样呈现: // 这当然是JavaScript引擎无法理解的。 我的问题是:有没有办法修改正则表达式完全像现在这样做,除了它保持CDATA部分内的文本不变? 由于正则表达式开头并不那么简单,这个问题可能更容易回答:是否可以编写一个正则表达式,将所有字母更改为除“ < ”和“ > ”之间的字母之外的句点? 例如,一个会将”some are “更改为”…. … ” ?

根据Regex生成随机字符串?

我想知道是否有办法从正则表达式生成随机字符串,如: /[a-z0-9]{5}/.to_s #=> “dsar3” 我发现了randexp ( https://github.com/benburkert/randexp ),但它似乎无法使用上面的基本示例,无论如何我觉得它被遗弃了。 任何人?

gsub部分替换

我想在此表达式中仅替换括号中的组: my_string.gsub(/(.)*/, ‘replace_text’) 所以我得到: replace_text 我知道我可以在替换表达式中重复整个MARKER_START和MARKER_END块,但我认为应该有一种更简单的方法来执行此操作。

检查一个字符串中的单词是否在另一个字符串中的最快方法是什么?

我有一串话; 让我们称他们为bad : bad = “foo bar baz” 我可以将此字符串保留为以空格分隔的字符串或列表: bad = bad.split(” “); 如果我有另一个字符串,如下所示: str = “This is my first foo string” 检查bad字符串中的任何单词是否在我的比较字符串中的最快方法是什么?如果发现该字词,删除该单词的最快方法是什么? #Find if a word is there bad.split(” “).each do |word| found = str.include?(word) end #Remove the word bad.split(” “).each do |word| str.gsub!(/#{word}/, “”) end