Tag: regex

在Ruby中为Regex模式生成字符串

在Python语言中,我发现rstr可以为正则表达式模式生成一个字符串。 或者在Python中我们有这个方法可以返回字符串的范围: re.sre_parse.parse(pattern) #….. (‘range’, (97, 122)) …. 但在Ruby中我没有找到任何东西。 那么如何在Ruby(反向正则表达式)中为正则表达式模式生成字符串? 我想要这样的事情: “/[a-z0-9]+/”.example #tvvd “/[a-z0-9]+/”.example #yt “/[a-z0-9]+/”.example #bgdf6 “/[a-z0-9]+/”.example #564fb “/ [a-z0-9] + /”是我的输入。 输出必须是我的正则表达式模式中可用的正确字符串。 这里的输出是: tvvd,yt,bgdf6,564fb, “example”方法生成它们。 我需要那种方法。 谢谢你的建议。

如何在Ruby正则表达式中匹配韩语字符?

我对使用正则表达式的用户名进行了一些基本validation,比如[\w-_]+ ,我想添加对韩语字母的支持,同时仍然保持validation相同。 我不想允许特殊字符,例如{}[]!@#$%^&*()等,我只想用除了[a-zA-Z0-9]之外的匹配给定字母的东西替换\w [a-zA-Z0-9] 。 这意味着像안녕 username这样的用户名应该有效,但不是안녕[] 。 我需要在Ruby 1.9中这样做。

Ruby相当于grep -v

这就是我一直在做的事情: my_array.reject { |elem| elem =~ /regex/ }.each { … } 我觉得这有点笨拙,但我没有找到任何内置的东西,我可以把它改成my_array.grepv /regex/ { … } 有这样的function吗?

Ruby中有效子域的正则表达式

我正在尝试validation将用作子域的用户输入字符串。 规则如下: 长度在1到63个字符之间(我从谷歌Chrome浏览器在子域中显示的字符数量中选择63个,不确定它是否实际上是服务器指令。如果您对有效最大长度有更好的建议,我有兴趣听到它) 可能包含a-zA-Z0-9,连字符,下划线 不能以连字符或下划线开头或结尾 编辑:从下面的输入,我添加了以下内容:4。不应包含连续的连字符或下划线。 例子: a => valid 0 => valid – => not valid _ => not valid a- => not valid -a => not valid a_ => not valid _a => not valid aa => valid aaa => valid aaa => valid 0-a => valid a&a => not valid a-_0 => […]

将字符串中的正则表达式转换为ruby中的regexp对象

我将一个正则表达式作为用户的输入,并将值与该正则表达式匹配。 但是,我遇到的问题是我收到的输入是一个字符串。 例如”/abc|def/i”我无法将其转换为正则表达式对象。 如果它尝试Regexp.new(string)它会逃脱所有字符,所以我得到像/\/abc|def\/i/ 我能够使用另一个正则表达式捕获正斜杠之间的部分,并使用它构建一个正则表达式对象。 对于上面的例子,我捕获”abc|def” ,当我做Regexp.new(“abc|def”)我得到/abc|def/这是我想要的但我需要一种方法来添加正则表达式选项(例如,在上面的例子中’i’)在ruby regexp对象的字符串中。 我怎么能实现这个??? 此外,必须有一种更简单的方法来实现所有这一切。 任何帮助将不胜感激。

ruby正则表达式 – 如何匹配一切直到角色 –

给出如下字符串: randomstring1-randomstring2-3df83eeff2 我怎样才能使用ruby正则表达式或其他一些ruby / rails友好方法来查找所有内容,直到第一个破折号 – 在上面的示例中,它将是: randomstring1 谢谢

Ruby的String#gsub,unicode和非单词字符

作为更大系列操作的一部分,我正在尝试使用更大字符串的标记块并摆脱标点符号,非字gobbledygook等。我的初始尝试使用String#gsub和\W regexp字符类,如所以: my_str = “Hello,” processed = my_str.gsub(/\W/,”) puts processed # => Hello 超级,超级,超级简单。 当然,现在我正在扩展我的程序以处理非拉丁字符,并且所有的东西都被打破了。 Ruby的\W似乎就像[^A-Za-z0-9_] ,当然,它排除了变音符号(ü,í等)的东西。 所以,现在我以前简单的代码以不愉快的方式崩溃和烧毁: my_str = “Quística.” processed = my_str.gsub(/\W/,”) puts processed # => Qustica 请注意,gsub()必须删除带重音的“í”字符。 我想到解决这个问题的一种方法是扩展Ruby的\ W白名单以包含更高的Unicode代码点,但是它们中有很多,我知道我会错过一些并导致问题(并且我们甚至没有开始考虑非拉丁语言……)。 另一个解决方案是将我想要摆脱的所有东西列入黑名单(标点符号,$ /%/&/™等),但是,再次,有很多这样的东西,我真的不想开始玩黑名单-敲击一个痣。 有没有人找到这个问题的原则解决方案? 是否有一些我尚未发现的隐藏的,Unicode友好的\W版本? 谢谢!

正则表达式validation它的网络路径PHP,jQuery,JavaScript,Ruby

试图找出一个用于validation网络路径的正则表达式,例如: \\comp\xyz或\\comp或\\comp\x\y\z\storage或者在所有部分上更长的东西,但希望传达它的尖端。 我目前所拥有的是一个简单的输入字段,我有一个用户传递信息。 事实上,我不希望他们把它弄错,因为后端连接到一个客户端,使用它在网络上的计算机上运行进程,所以我需要的最后一件事就是有人输入错误的东西并成为其他东西的原因断。 所以我认为一个快速的preg_match会让我很好地从我目前正在使用的PHP方面确认这一点,但我确实需要将它用于JavaScript和基于Ruby构建的层,因此我不知道所有正则表达式是否相等或不是我需要一个适用于所有级别的工具.. 另外为了节省我回来的时间,我最终需要找出一个允许用户执行本地路径的正则表达式,即: C:\ , X: , H:\path\to\folder或网络路径为之前提到的。

Ruby gsub函数

我正在尝试为我的rails论坛创建一个BBcode [code]标签,我的表达式有问题: param_string.gsub!( /\[code\](.*?)\[\/code\]/im, ‘\1 ‘ ) 如何获取正则表达式匹配返回的内容([code] [/ code]标签之间的文本),并转义所有html和其中的一些其他字符? 我试过这个: param_string.gsub!( /\[code\](.*?)\[\/code\]/im, ” + my_escape_function(‘\1’) + ‘ ‘ ) 但它不起作用。 它只是将“\ 1”作为字符串传递给函数。

Ruby + Anemone Web Crawler:正则表达式匹配以一系列数字结尾的URL

假设我正在尝试抓取一个网站,跳过一个像这样结束的页面: http://HIDDENWEBSITE.com/anonimize/index.php?page=press_and_news&subpage=20060117 我目前正在使用Ruby中的Anemone gem来构建爬虫。 我使用的是skip_links_like方法,但我的模式似乎永远不匹配。 我试图使其尽可能通用,因此它不依赖于子页面而只是=2105925 (数字)。 我试过/=\d+$/和/\?.*\d+$/ /=\d+$/但它似乎没有用。 这类似于跳过带有扩展名pdf的网页,来自在Anemone中抓取的zip,但我不能用数字而不是扩展来使其值得。 此外,在http://regexpal.com/上使用pattern =\d+$将成功匹配http://misc.com/test/index.php?page=news&subpage=20060118 编辑: 这是我的全部代码。 我想知道是否有人能够确切地看到错误。 require ‘anemone’ … Anemone.crawl(url, :depth_limit => 3, :obey_robots_txt => true) do |anemone| anemone.skip_links_like /\?.*\d+$/ anemone.on_every_page do |page| pURL = page.url.to_s puts “Now checking: ” + pURL bestGuess[pURL] = match_freq( manList, page.doc.inner_text ) puts “Successfully checked” end end 我的输出是这样的: … Now […]